<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # REVOKE ## Name REVOKE?--?刪除訪問權限 ## Synopsis ``` REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] _table_name_ [, ...] | ALL TABLES IN SCHEMA _schema_name_ [, ...] } FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | REFERENCES } ( _column_name_ [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( _column_name_ [, ...] ) } ON [ TABLE ] _table_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { USAGE | SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON { SEQUENCE _sequence_name_ [, ...] | ALL SEQUENCES IN SCHEMA _schema_name_ [, ...] } FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE _database_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON DOMAIN _domain_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN DATA WRAPPER _fdw_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN SERVER _server_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON { FUNCTION _function_name_ ( [ [ _argmode_ ] [ _arg_name_ ] _arg_type_ [, ...] ] ) [, ...] | ALL FUNCTIONS IN SCHEMA _schema_name_ [, ...] } FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE _lang_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON LARGE OBJECT _loid_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] } ON SCHEMA _schema_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { CREATE | ALL [ PRIVILEGES ] } ON TABLESPACE _tablespace_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON TYPE _type_name_ [, ...] FROM { [ GROUP ] _role_name_ | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ ADMIN OPTION FOR ] _role_name_ [, ...] FROM _role_name_ [, ...] [ CASCADE | RESTRICT ] ``` ## 描述 `REVOKE`撤銷以前賦予一個或多個角色的權限。關鍵字`PUBLIC` 代表隱含定義的、擁有所有角色的組。 參閱[GRANT](#calibre_link-19)命令的描述獲取權限類型的含義。 請注意,任何特定的角色都將擁有直接賦予它的權限,加上它所在組的權限, 再加上賦予`PUBLIC`的權限的總和。因此,舉例來說,廢止`PUBLIC` 的`SELECT`權限并不意味著所有角色都失去了對該對象的`SELECT`權限: 那些直接得到的權限以及通過一個組得到的權限仍然有效。相似的,廢止一個用戶的`SELECT` 權限可能并不阻止用戶使用`SELECT`,如果`PUBLIC`或其他成員組仍然擁有 `SELECT`權限。 如果指定了`GRANT OPTION FOR`,那么只是撤銷對該權限的授權的權力, 而不是撤銷該權限本身。否則,權限和授權選項都被撤銷。 如果一個用戶持有某個權限,并且還有授權的選項,并且還把這個權限賦予了其它用戶, 那么那些其它用戶持有的權限都叫做依賴性權限。如果第一個用戶持有的權限或者授權選項被撤銷, 而依賴性權限仍然存在;那么如果聲明了`CASCADE`,則所有依賴性權限都被撤銷, 否則撤銷動作就會失敗。這個遞規的撤銷只影響那種通過一個用戶鏈賦予的權限, 這個鏈條可以通過這條`REVOKE`命令里面給出的用戶跟蹤。因此, 如果權限本身是通過其它用戶賦予的,那么被影響的用戶可以有效地保留這個權限。 當在表上撤銷權限時,相應的字段權限(如果有)也自動撤銷。另一方面, 如果已經賦予了一個角色在表上的權限,那么在單獨的字段上刪除相同的權限將不會有作用。 在撤銷一個角色里的成員關系的時候,不是調用`ADMIN OPTION`而是調用 `GRANT OPTION`,但是行為類似。不過這種形式的命令不允許出現`GROUP`噪聲字。 ## 注意 使用[psql](#calibre_link-23)的`\dp`命令顯示在一個現存表和字段上賦予的權限。 又見[GRANT](#calibre_link-19)獲取關于格式的信息。對于非表對象,可以使用`\d` 命令顯示他們的權限。 一個用戶只能撤銷由它自己直接賦予的權限。舉例來說,如果用戶 A 帶著授權選項把一個權限賦予了用戶 B , 然后用戶 B 又賦予了用戶 C ,那么用戶 A 不能直接將 C 的權限撤銷。但是, 用戶 A 可以撤銷用戶 B 的授權選項,并且使用`CASCADE`選項,這樣, 用戶 C 的權限就會自動被撤銷。另外一個例子:如果 A 和 B 都賦予了 C 同樣的權限, 則 A 可以撤銷他自己的授權選項,但是不能撤銷 B 的,因此 C 仍然有效地擁有該權限。 如果一個對象的非所有者試圖`REVOKE`對象上的權限,那么,如果這個用戶沒有該對象上的權限, 則命令馬上失敗。只要他有某些權限,則命令繼續,但是它只撤銷那些該用戶有授權選項的權限。 如果沒有在授權選項,那么`REVOKE ALL PRIVILEGES`形式將發出一個錯誤信息, 而對于其它形式的命令而言,如果同樣是命令中指定名字的權限沒有相應的授權選項, 那么該命令將發出一個警告。原則上這些語句也適用于對象所有者, 但是因為所有者總是認為持有所有授權選項,所以這種情況絕不會發生。 如果一個超級用戶發出一個`GRANT`或`REVOKE`命令, 那么命令是以被影響的對象的所有者執行的。因為所有權限最終從對象所有者 (可能間接通過賦權選項)獲取,超級用戶可以廢除所有權限, 但是這樣就要求像上面說的那樣使用`CASCADE`。 `REVOKE`也可以由一個并非被影響對象的所有者來執行, 不過這個角色必須是擁有該對象的角色的成員,或者是一個在該對象上持有 `WITH GRANT OPTION`的角色的成員。在這種情況下, 該命令執行起來就好像是由實際擁有該對象的角色,或者是在該對象上持有 `WITH GRANT OPTION`權限的角色發出的一樣。比如,如果表`t1` 被`g1`所有,而`u1`是`g1`的成員,那么`u1` 可以撤銷`t1`上的權限,而紀錄為`g1`發出的命令。這種現像包括 `u1`和其它`g1`角色成員發出的授權。 如果執行`REVOKE`的角色持有權限是通過多層成員關系獲得的, 那么具體是哪個包含的角色執行的該命令就是未聲明的。在這種場合下, 最好的方法是使用`SET ROLE`成為你希望執行`REVOKE`的角色。 不這么做的后果可能導致刪除你不想刪除的權限,或者是啥權限都沒有刪除。 ## 例子 撤銷公眾在表`films`上的插入權限: ``` REVOKE INSERT ON films FROM PUBLIC; ``` 撤銷用戶`manuel`對視圖`kinds`的所有權限: ``` REVOKE ALL PRIVILEGES ON kinds FROM manuel; ``` 請注意這樣實際上意味著"撤銷所有我賦予的權限"。 刪除用戶`joe`的`admins`成員關系: ``` REVOKE admins FROM joe; ``` ## 兼容性 [GRANT](#calibre_link-19)命令的兼容性信息基本上也適用于`REVOKE`。 標準要求`RESTRICT`或`CASCADE`必須出現, 但是PostgreSQL假設缺省是`RESTRICT`。 ## 又見 [GRANT](#calibre_link-19)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看