grant(计算机术语)

生活百科 2023-01-17 20:00生活百科www.aizhengw.cn

grant(计算机术语)

GRANT 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的许可权。对象创建后,除了创建者外,除非创建者赋予(GRANT)许可权,其他人没有访问对象的许可权。一旦用户有某对象的许可权,他就可以使用那个特权。

不需要给创建者赋予(GRANT)对象的许可权,创建者自动拥有对象的所有许可权,包括删除它的许可权。

基本介绍

  • 中文名许可权
  • 外文名grant

概述

Grant 英美常见人名 格兰特
GRANT
名称
GRANT — 赋予一个用户,一个组或所有用户访问许可权
GRANT privilege [, ...] ON object [, ...]
TO { PUBLIC | GROUP group | username }
输入
privilege
可能的许可权有
SELECT
访问声明的表/视图的所有列/栏位.
INSERT
向声明的表中插入所有列栏位.
UPDATE
更新声明的所有列/栏位.
DELETE
从声明的表中删除所有行.
RULE
在表/视图上定义规则 (参见 CREATE RULE 语句).
ALL
赋予所有许可权.
object
赋予许可权的对象名.可能的对象是
table (表)
view (视图)
sequence (序列)
index (索引)
PUBLIC
代表是所有用户的简写.
GROUP group
将要赋予许可权的组 group .目前的版本中,组必须是用下面方法显式创建的.
username
将要赋予许可权的用户名.PUBLIC 是代表所有用户的简写.
输出
CHANGE
如果成功,返回此信息.
ERROR: ChangeAcl: class "object" not found
如果所声明的对象不可用或不可能对声明的组或用户赋予许可权.

注意

目前,要想在 Postgres 里面只赋予几列许可权,你必须创建一个包含那几列的视图(view),然后把许可权赋予那几个视图。
使用 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 中插入数据,像
INSERT INTO pg_group VALUES ('todos');
CREATE USER miriam IN GROUP todos;
参考 REVOKE 语句重新分配访问许可权.
用法
给所有用户向表 films 插入记录的许可权
GRANT INSERT ON films TO PUBLIC;
赋予用户 manuel 操作视图 kinds 的所有许可权
GRANT ALL ON kinds TO manuel;

兼容性

SQL92
SQL92 GRANT 语法允许对表中的某单独列/栏位设定许可权,并且允许设定一许可权以赋予别人相同许可权.
GRANT privilege [, ...]
ON object [ ( column [, ...] ) ] [, ...]
TO { PUBLIC | username [, ...] } [ WITH GRANT OPTION ]
这些栏位与 Postgres 实现是兼容的,除了下面一些例外
privilege
SQL92 允许声明附加的许可权
SELECT
REFERENCES
允许在一个声明的表的整契约束中使用某些或全部列/栏位.
USAGE
允许使用一个域,字元集,集合或事务.如果声明的对象不是表/视图, privilege 只能声明为 USAGE.
object
[ TABLE ] table
SQL92 允许一个附加的非函式关键字 TABLE.
CHARACTER SET
允许使用声明的字元集.
COLLATION
允许使用声明的集合序列.
TRANSLATION
允许使用声明的字元集转换.
DOMAIN
允许使用声明的域.
WITH GRANT OPTION
允许向别人赋予同样许可权.
上一篇:Betta 下一篇:Ooh La La(张学友的歌曲)

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有