PostgreSQL7.0手冊-用戶手冊-19. SQL命令-REVOKE
2019-09-08 23:33:40
供稿:網友
REVOKE
名稱
REVOKE ― 廢除某用戶或某組或所有用戶訪問權限.
語法
REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }
輸入
privilege
可能的權限是:
SELECT
對選定表/視圖的所有列/字段的訪問權限.
INSERT
對選定表的所有列/字段的插入數據的權限.
UPDATE
對選定表所有列/字段的更新權限.
DELETE
對選定表所有列/字段的刪除權限.
RULE
在表/視圖上定義規則的權限.(參閱 CREATE RULE)?!?
ALL
廢止所有權限.
object
要廢除訪問的對象名.可能的對象有:
table
view
sequence
group
被廢除權限的組的名稱.
username
被廢除權限的用戶的名稱.使用 PUBLIC 關鍵字廢除所有用戶.
PUBLIC
廢止所有用戶的權限.
描述
CHANGE
成功執行返回的信息.
ERROR
如果對象不可用或不可能廢止組或用戶的權限.
注意
REVOKE 允許對象的創建者廢止以前賦予過的某用戶,組或所有用戶(用 PUBLIC)權限.
注意
使用 psql /z 命令獲取現存對象的權限的更多信息:
Database = lusitania
+------------------+---------------------------------------------+
| Relation | Grant/Revoke Permissions |
+------------------+---------------------------------------------+
| mytable | {"=rw","miriam=arwR","group todos=rw"} |
+------------------+---------------------------------------------+
Legend:
uname=arwR -- 賦于一個用戶的權限
group gname=arwR -- 賦于一個組(GROUP)的權限
=arwR -- 賦于公眾(PUBLIC)的權限privileges granted to PUBLIC
r -- SELECT
w -- UPDATE/DELETE
a -- INSERT
R -- RULE
arwR -- ALL
小技巧: 目前,要創建一個組 GROUP 你只能手工的向表 pg_group 里插入數據:(譯注:這部分內容比較舊,目前已經有CREATE GROUP 語句了。)
INSERT INTO pg_group VALUES ('todos');
CREATE USER miriam IN GROUP todos;
用法
廢除所有用戶對表 films 的插入權限:
REVOKE INSERT ON films FROM PUBLIC;
廢除用戶 manuel 對視圖 kinds 的所有權限:
REVOKE ALL ON kinds FROM manuel;
兼容性
SQL92
SQL92 的 REVOKE 語法有一些附加的功能,包括一些用于廢止表中某些列/字段的權限:
REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
ON object
FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( column [, ...] ) ]
ON object
FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
請參考 GRANT 命令獲取獨立的列/字段的細節.
REVOKE GRANT OPTION FOR privilege [, ...]
ON object
FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
廢除一個用戶給其他用戶賦予權限的權限.請參考 GRANT 命令獲取獨立的列/字段的細節.
可能的對象是:
[ TABLE ] 表/視圖
CHARACTER SET 字符集
COLLATION 字符集
TRANSLATION 字符集
DOMAIN 域
如果用戶1 賦予了用戶2的權限帶著(賦予選項) WITH GRANT OPTION ,然后用戶2 給了用戶3,則用戶1可以使用 CASCADE 關鍵字廢除用戶2和3的權限.
如果用戶1給予用戶2權限帶著(賦予選項)WITH GRANT OPTION,然后用戶2又把它給予了用戶3,則如果用戶1 試圖帶著 RESTRICT 關鍵字廢除這個權限就會失敗.