Oracle权限详解.doc

上传人:11****ws 文档编号:3180494 上传时间:2019-05-24 格式:DOC 页数:6 大小:38KB
下载 相关 举报
Oracle权限详解.doc_第1页
第1页 / 共6页
Oracle权限详解.doc_第2页
第2页 / 共6页
Oracle权限详解.doc_第3页
第3页 / 共6页
Oracle权限详解.doc_第4页
第4页 / 共6页
Oracle权限详解.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、Oracle 的权限主要包括角色权限(Role privileges )、系统权限( System privileges)和对象权限(Object privileges)。一、角色权限角色是一组权限的集合,将角色赋给用户,那这个用户就拥有这个角色包含的权限。在数据库安装后,系统会自动创建一些常用的角色,下面简单介绍一下这些预定义角色,角色所包含的权限可以用语句来查询:select * from role_sys_privs where role=角色名;1.CONNECT, RESOURCE, DBA 这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle 建议用户自己设计数据

2、库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。DBA: 拥有全部特权,是系统最高角色权限,只有 DBA 才可以创建数据库结构。RESOURCE:拥有 Resource 角色权限的用户只可以创建实体,不可以创建数据库结构。CONNECT:拥有 Connect 角色权限的用户只可以登录 Oracle,不可以创建实体,不可以创建数据库结构。对于普通用户:授予 connect, resource 角色权限。对于 DBA 管理用户:授予 connect,resource, dba 角色权限。2.DELETE_CATALOG_ROLE,EXECUTE_C

3、ATALOG_ROLE,SELECT_CATALOG_ROLE 这些角色主要用于访问数据字典视图和包。3.EXP_FULL_DATABASE,IMP_FULL_DATABASE 这两个角色用于数据导入导出工具的使用。4.AQ_USER_ROLE,AQ_ADMINISTRATOR_ROLE 这两个角色用于 oracle 高级查询功能。5.SNMPAGENT 用于 oracle enterprise manager 和 Intelligent Agent 6.RECOVERY_CATALOG_OWNER 用于创建拥有恢复库的用户。7.HS_ADMIN_ROLE异构服务需要这个角色去访问数据字典中的

4、表。.补充:管理角色权限1.建一个角色 sqlcreate role role1; 2.授予权限给角色 sqlgrant create any table,create procedure to role1; 3.授予角色给用户 sqlgrant role1 to user1; 4.查看角色所包含的权限 sqlselect * from role_sys_privs; 5.创建带有口令以角色(在生效带有口令的角色时必须提供口令) sqlcreate role role1 identified by password1; 6.修改角色:是否需要口令 sqlalter role role1 not

5、 identified; sqlalter role role1 identified by password1; 7.设置当前用户要生效的角色 (注:角色的生效是一个什么概念呢?假设用户 a 有 b1,b2,b3 三个角色,那么如果 b1 未生效,则 b1 所包含的权限对于 a 来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数 MAX_ENABLED_ROLES 设定;在用户登录后,oracle 将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。) sqlset role role1;/使 role1 生效 sqlset role role1,role2

6、;/使 role1,role2 生效 sqlset role role1 identified by password1;/使用带有口令的 role1 生效 sqlset role all;/使用该用户的所有角色生效 sqlset role none;/设置所有角色失效 sqlset role all except role1;/除 role1 外的该用户的所有其它角色生效。sqlselect * from SESSION_ROLES;/查看当前用户的生效的角色。 8.修改指定用户,设置其默认角色 sqlalter user user1 default role role1; sqlalter

7、 user user1 default role all except role1; 9.删除角色 sqldrop role role1; 角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。 说明: 1)无法使用 WITH GRANT OPTION 为角色授予对象权限 2)可以使用 WITH ADMIN OPTION 为角色授予系统权限,取消时不是级联二、系统权限所谓系统权限,就是 oracle 里已经写死的权限,这些权限,我们是不能自己去扩展的,已经在 oracle 里全部规定好了,我们可以通过查看system_privilege_map 这个数据字典表来查看所有的

8、oracle 系统内置的权限。alter any cluster 修改任意簇的权限alter any index 修改任意索引的权限alter any role 修改任意角色的权限alter any sequence 修改任意序列的权限alter any snapshot 修改任意快照的权限alter any table 修改任意表的权限alter any trigger 修改任意触发器的权限alter cluster 修改拥有簇的权限alter database 修改数据库的权限alter procedure 修改拥有的存储过程权限alter profile 修改资源限制简表的权限alter

9、 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 备份任意表的权限

10、become user 切换用户状态的权限commit any table 提交表的权限create any cluster 为任意用户创建簇的权限create any index 为任意用户创建索引的权限create any procedure 为任意用户创建存储过程的权限create any sequence 为任意用户创建序列的权限create any snapshot 为任意用户创建快照的权限create any synonym 为任意用户创建同义名的权限create any table 为任意用户创建表的权限create any trigger 为任意用户创建触发器的权限create

11、 any view 为任意用户创建视图的权限create cluster 为用户创建簇的权限create database link 为用户创建的权限create procedure 为用户创建存储过程的权限create profile 创建资源限制简表的权限create public database link 创建公共数据库链路的权限create public synonym 创建公共同义名的权限create role 创建角色的权限create rollback segment 创建回滚段的权限create session 创建会话的权限create sequence 为用户创建序列的权

12、限create snapshot 为用户创建快照的权限create synonym 为用户创建同义名的权限create table 为用户创建表的权限create tablespace 创建表空间的权限create user 创建用户的权限create view 为用户创建视图的权限delete any table 删除任意表行的权限delete any view 删除任意视图行的权限delete snapshot 删除快照中行的权限delete table 为用户删除表行的权限delete view 为用户删除视图行的权限drop any cluster 删除任意簇的权限drop any i

13、ndex 删除任意索引的权限drop any procedure 删除任意存储过程的权限drop any role 删除任意角色的权限drop any sequence 删除任意序列的权限drop any snapshot 删除任意快照的权限drop any synonym 删除任意同义名的权限drop any table 删除任意表的权限drop any trigger 删除任意触发器的权限drop any view 删除任意视图的权限drop profile 删除资源限制简表的权限drop public cluster 删除公共簇的权限drop public database link 删

14、除公共数据链路的权限drop public synonym 删除公共同义名的权限drop rollback segment 删除回滚段的权限drop tablespace 删除表空间的权限drop user 删除用户的权限execute any procedure 执行任意存储过程的权限execute function 执行存储函数的权限execute package 执行存储包的权限execute procedure 执行用户存储过程的权限force any transaction 管理未提交的任意事务的输出权限force transaction 管理未提交的用户事务的输出权限grant a

15、ny privilege 授予任意系统特权的权限grant any role 授予任意角色的权限index table 给表加索引的权限insert any table 向任意表中插入行的权限insert snapshot 向快照中插入行的权限insert table 向用户表中插入行的权限insert view 向用户视图中插行的权限lock any table 给任意表加锁的权限manager tablespace 管理(备份可用性)表空间的权限references table 参考表的权限restricted session 创建有限制的数据库会话的权限select any sequen

16、ce 使用任意序列的权限select any table 使用任意表的权限select snapshot 使用快照的权限select sequence 使用用户序列的权限select table 使用用户表的权限select view 使用视图的权限unlimited tablespace 对表空间大小不加限制的权限update any table 修改任意表中行的权限update snapshot 修改快照中行的权限update table 修改用户表中的行的权限update view 修改视图中行的权限enqueue any queue 就是向所有队列中加入消息的权限;dequeue an

17、y queue 就是可以向所有队列使消息出队的权限;manage any queue 就是在所有所有方案下,允许运行 DBMS_AQADM 的权限1.查看所有用户:select * from dba_users;select * from all_users;select * from user_users;2.查看用户或角色系统权限:select * from dba_sys_privs;select * from user_sys_privs;3.查看用户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select

18、* from user_tab_privs;4.查看所有角色:select * from dba_roles;5.查看用户或角色所拥有的角色:select * from dba_role_privs;select * from user_role_privs;6.注意:(1)以下语句可以查看 Oracle 提供的系统权限select name from sys.system_privilege_map(2)查看一个用户的所有系统权限(包含角色的系统权限)select privilege from dba_sys_privs where grantee=USER_NAMEunionselect

19、privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee=USER_NAME );三、对象权限:下面我们看看对象权限(object permission ),这里是针对于特定的对象的权限,系统权限是限定了可以操作的功能,而 object permission 就更细化了,具体到了莫个对象你可以操作的功能的权限,比如 A 用户建立了一个 TableA 表,现在为了让 B 用户可以看到 A 这个对象,我们就可以把 A.table 的 select 权限进行

20、赋予。这里的 A.table 上的 select 权限就是一个对象权限。 除了 select,还有update,delete,insert ,alter,drop,index,references 这样针对对象的权限。除了可以给表对象指定对象权限外,view,sequence ,procedure,function ,package ,triggger,MV 等这些 oracle 里的对象都可以进行对象的权限指定。 对于对象权限来说,由于对象权限完全是动态的,在对一个对象进行 grant 的时候,才能看到具体的对象权限,所以对象权限是不像 system privilege 那样有一个表来描述的,只有一个表来记录用户和这个用户对于的对象权限的关系表。这个表就是 dba_tab_privs;这里这个名字比较容易让人误会为只有 table 的对象权限,其实不然,这里其他类型的对象的对象权限也会记录进来。

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。