资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
Oracle Grant / REVOKE 正解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 | =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;兼容性SQL92SQL92 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 允许向别人赋予同样权限.*我以 scott/tiger 登录以后建立了表以后插入数据提示我插入成功了,但是在查询数据的时候是没有记录的,原因是我的 scott 用户没有对这个表插入的权限。这时要以 system 登录以后用 grant 赋予 scottr 中某个表的相应的权限。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)对象的权限,创建者自动拥有对象-注明:、权限是用户对一项功能的执行权力。在 Oracle 中,根据系统管理方式不同,将权限分为系统权限 与实体权限 两类。系统权限 是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作。实体权限 是指用户对具体的模式实体 (schema)所拥有的权限。这样讲可以有些模糊。举个例子来说:select any table 是系统权限,它表示可以查看任何表。而 select on table1 是实体权限,表示对表 table1 的查询权限。二、见下下面的表三、系统权限授权命令的使用 语法: GRANT 权限名 TO用户|角色|PUBLIC 其中,PUBLIC 表示将权限赋给数据库中所有的用户 例:赋给用户 USER1 权限 CREATE TABLE 的授权命令如下: SQLGRANT CREATE TABLE TO USER1; 授权语句还可以增加 WITH ADMIN OPTION 选项,表示被授权的用户可以将它所得权限赋给其它用户,如: SQLGRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION; 若要了解各用户所拥有的系统权限,可以查询数据字典USER_SYS_PRIVS、ROLE_SYS_PRIVS。 若要回收权限,则使用 REVOKE 命令,如: SQLREVOKE CREATE TABLE FROM USER1;四、实体权限管理 实体权限是指某一用户对某一特定 schema 对象的操作权限。 1.实体权限分类 不同的实体类型有不同的实体权限,如下表2.实体权限的授命令 语法如下: GRANT 实体权限名|ALL TO 用户 |角色|PUBLIC 其中,ALL 表示实体的所有实体权限。 如: SQLGRANT SELECT ON BOOKS_QUTHORS TO USER1; 以下语句用来查询表的实体权限的授权信息: SQLSELECT * FROM USER_TAB_PRIVES 若要回收实体权限,使用 REVOKE,其语法如下: REVOKE 实体权限名|ALL ON 实体名 FROM 用户名|角色名|PUBLIC。alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any cluster alter any sequence 修改任意序列的权限 alter any snapshot 修改任意快照的权限 alter any table 修改任意表的权限 alter any trigger 修改任意触发器的权限 alter cluster 修改拥有簇的权限 alter database 修改数据库的权限 alter procedure 修改拥有的存储过程权限 alter profile 修改资源限制简表的权限 alter resource cost 设置佳话资源开销的权限 alter rollback segment 修改回滚段的权限 alter sequence 修改拥有的序列权限 alter session 修改数据库会话的权限 alter sytem 修改数据库服务器设置的权限 alter table 修改拥有的表权限 alter tablespace 修改表空间的权限 alter user 修改用户的权限 analyze 使用 analyze 命令分析数据库中任意的表、索引和簇 audit any 为任意的数据库对象设置审计选项 audit system 允许系统操作审计 backup any table 备份任意表的权限 become user 切换用户状态的权限 commit any table 提交表的权限 create any cluster 为任意用户创建簇的权限 create any index 为任意用户创建索引的权限 create any procedure 为任意用户创建存储过程的权限 create any sequence 为任意用户创
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号