table of contents
REVOKE(7) | SQL Commands | REVOKE(7) |
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
2003-11-02 | SQL - Language Statements |