| PostgreSQL | ||
|---|---|---|
| 上一页 | 下一页 | |
REVOKE — 废除某用户或某组或所有用户访问权限.
REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP ER">gBLE> | username }
REVOKE 允许对象的创建者废止以前赋予过的某用户,组或所有用户(用 PUBLIC)权限.
使用 psql \z 命令获取现存对象的权限的更多信息:
Database = lusitania
+------------------+---------------------------------------------+
| Relation | Grant/Revoke Permissions |
+------------------+---------------------------------------------+
| mytable | {"=rw","miriam=arwR","group todos=rw"} |
+------------------+---------------------------------------------+
Legend:
uname=arwR -- privileges granted to a user
group gname=arwR -- privileges granted to a GROUP
=arwR -- 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 的 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 }
REVOKE GRANT OPTION FOR privilege [, ...]
ON object
FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
可能的对象是:
| [ 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 关键字废除这个权限就会失败.
| 上一页 | 首页 | 下一页 |
| RESET | 开头 | ROLLBACK |