所有栏目

grant(计算机术语)

作者:爱百科

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

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

如果所声明的对象不可用或不可能对声明的组或用户赋予权限。

grant注意

要想在 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;

grant兼容性

SQL92

SQL92 GRANT 语法允许对表中的某单独列/字段设置权限,并且允许设置一权限以赋予别人相同权限。

GRANT privilege

ON object ) ]

TO { PUBLIC | username }

这些字段与 Postgres 实现是兼容的,除了下面一些例外:

privilege

SQL92 允许声明附加的权限:

SELECT

REFERENCES

允许在一个声明的表的整合约束中使用某些或全部列/字段。

USAGE

允许使用一个域,字符集,集合或事务.如果声明的对象不是表/视图, privilege 只能声明为 USAGE。

object

table

SQL92 允许一个附加的非函数关键字 TABLE。

CHARACTER SET

允许使用声明的字符集。

COLLATION

允许使用声明的集合序列。

TRANSLATION

允许使用声明的字符集转换。

DOMAIN

允许使用声明的域。

WITH GRANT OPTION

允许向别人赋予同样权限。

热点导航
教育资讯 知道问答 公考资讯 司法考试 建筑知识 工作范文 大学排名 报考专业 学习方法 句子美文 秒知回答 作业解答 精选答案 知途问学