数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

OracleGrant详解


发布日期:2022年04月19日
 
OracleGrant详解

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 允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限.对象创建后除了创建者外除非创建者赋予(GRANT)权限其他人没有访问对象的权限.

一旦用户有某对象的权限他就可以使用那个特权.不需要给创建者赋予(GRANT)对象的权限创建者自动拥有对象的所有权限包括删除它的权限.

注意

目前要想在 Postgres 里面只赋予几列权限你必须创建一个包含那几列的视图(view)然后把权限赋予那几个视图

使用 psql \z 命令获取关于现存对象权限的更多信息

Database = lusitania

+++

| Relation | Grant/Revoke Permissions |

+++

| mytable | {=rwmiriam=arwRgroup 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;

兼容性

SQL

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

GRANT privilege [ ]

ON object [ ( column [ ] ) ] [ ]

TO { PUBLIC | username [ ] } [ WITH GRANT OPTION ]

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

privilege

SQL 允许声明附加的权限

SELECT

REFERENCES

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

USAGE

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

object

[ TABLE ] table

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

CHARACTER SET

允许使用声明的字符集.

COLLATION

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

TRANSLATION

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

DOMAIN

允许使用声明的域.

WITH GRANT OPTION

允许向别人赋予同样权

               

上一篇:如何生成OracleAWR报告

下一篇:Oracle9204forRHAS3的安装