Provided by: manpages-zh_1.6.3.6-1_all bug

NAME

       REVOKE - 刪除訪問許可權

SYNOPSIS

       REVOKE [ GRANT OPTION FOR ]
           { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
           [,...] | ALL [ PRIVILEGES ] }
           ON [ TABLE ] tablename [, ...]
           FROM { username | GROUP groupname | PUBLIC } [, ...]
           [ CASCADE | RESTRICT ]

       REVOKE [ GRANT OPTION FOR ]
           { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
           ON DATABASE dbname [, ...]
           FROM { username | GROUP groupname | PUBLIC } [, ...]
           [ CASCADE | RESTRICT ]

       REVOKE [ GRANT OPTION FOR ]
           { EXECUTE | ALL [ PRIVILEGES ] }
           ON FUNCTION funcname ([type, ...]) [, ...]
           FROM { username | GROUP groupname | PUBLIC } [, ...]
           [ CASCADE | RESTRICT ]

       REVOKE [ GRANT OPTION FOR ]
           { USAGE | ALL [ PRIVILEGES ] }
           ON LANGUAGE langname [, ...]
           FROM { username | GROUP groupname | PUBLIC } [, ...]
           [ CASCADE | RESTRICT ]

       REVOKE [ GRANT OPTION FOR ]
           { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
           ON SCHEMA schemaname [, ...]
           FROM { username | GROUP groupname | PUBLIC } [, ...]
           [ CASCADE | RESTRICT ]

DESCRIPTION 描述

       REVOKE 撤銷以前賦予(別人)的許可權,可以是撤銷一個或多個使用者或者一組使用者的許可權。 關
       鍵字 PUBLIC 代表隱含定義的擁有所有使用者的組。

        參閱 GRANT [grant(7)] 命令的描述獲取許可權型別的含義。

        請注意,任何特定的使用者都將擁有直接賦予他/她的許可權,加上他/她所處的任何組, 以及再加上
       賦予  PUBLIC 的許可權的總和。因此,舉例來說,廢止 PUBLIC  的 SELECT 許可權並不意味著所有使
       用者都失去了對該物件的 SELECT 許可權:  那些直接得到許可權賦予的以及透過一個組得到許可權的
       人仍然擁有該許可權。

        如果聲明瞭 GRANT OPTION FOR,那麼只是撤銷對該許可權的授權的權力,而不是撤銷該許可權本身。

        如果一個使用者持有某項許可權,並且還有授權的選項,並且還把這個許可權賦予了其他使用者, 那
       麼那些其他使用者持有的許可權都叫做依賴性許可權。  如果第一個使用者持有的許可權或者授權選項
       被撤銷,而依賴性許可權仍然存在,  那麼如果我們聲明瞭 CASCADE,則所有依賴性許可權都被撤銷,
       否則撤銷動作就會失敗。這個遞規的撤銷隻影響那種透過一個使用者鏈賦予的許可權,  這個鏈條可以
       透過這條 REVOKE 命令裡面給出的使用者追蹤。 因此,如果許可權本身是透過其他使用者賦予的, 那
       麼被影響的使用者可以有效地保留這個許可權。

NOTES 注意

        使用 psql(1) 的 \z 命令顯示在一個現存物件上賦予的許可權。 參見 GRANT [grant(7)]  獲取關於
       格式的資訊。

        一個使用者只能撤銷由它自己直接賦予的許可權。舉例來說,如果使用者 A 帶著授權選項吧一個許可
       權賦予了使用者 B,然後使用者 B 又賦予了使用者 C, 那麼使用者  A  不能直接將  C  的許可權撤
       銷。但是,使用者  A 可以撤銷使用者 B 的授權選項,並且使用 CASCADE 選項,這樣, 使用者 C 的
       許可權就會自動被撤銷。

        如果一個超級使用者發出一個 GRANT 或者 REVOKE 命令,  那麼命令是按照以被影響的物件的所有者
       執行的方式執行的。因為所有許可權最終從物件所有者(可能間接透過賦權選項獲取),  超級使用者
       可以廢除所有許可權,但是這樣就要求像上面說的那樣使用 CASCADE。

EXAMPLES 例子

        撤銷公眾在表 films 上的插入許可權:

       REVOKE INSERT ON films FROM PUBLIC;

        廢除使用者 manuel 對檢視 kinds 的所有許可權:

       REVOKE ALL PRIVILEGES ON kinds FROM manuel;

COMPATIBILITY 相容性

       GRANT [grant(7)] 命令的相容性資訊基本上也適用於 REVOKE。語法概要是:

       REVOKE [ GRANT OPTION FOR ] privileges
           ON object [ ( column [, ...] ) ]
           FROM { PUBLIC | username [, ...] }
           { RESTRICT | CASCADE }

        標準要求 RESTRICT 或者 CASCADE 之一必須出現, 但是 PostgreSQL 假設預設是 RESTRICT。

SEE ALSO 參見

       GRANT [grant(7)]

譯者

       Postgresql 中文網站 何偉平 <laser@pgsqldb.org>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh