oracle权限详解
江南春古诗
Oracle权限详解
关于爱情的定义元宵之后柳吐芽 (打一成语)
sql>alter role role1 identified by password1;  7.设置当前用户要生效的角  (注:角的生效是一个什么概念呢?假设用户a有b1,b2,b3三个角,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角生效了,角内的权限才作用于用户,最大可生效角数由参数MAX_ENABLED_ROLES设定;在用户登录后,oracle将所有直接赋给用户的权限和用户默认角中的权限赋给用户。) 
sql>set role role1;//使role1生效 
sql>set role role1,role2;//使role1,role2生效 
sql>set role role1 identified by password1;//使用带有口令的role1生效  sql>set role all;//使用该用户的所有角生效  sql>set role none;//设置所有角失效 
sql>set role all except role1;//除role1外的该用户的所有其它角生效。  sql>select * from SESSION_ROLES;//查看当前用户的生效的角。  8.修改指定用户,设置其默认角 
sql>alter user user1 default role role1; 
中专专业sql>alter user user1 default role all except role1;  9.删除角 
sql>drop role role1;  角删除后,原来拥用该角的用户就不再拥有该角了,相应的权限也就没有了。  说明: 
1)无法使用WITH GRANT OPTION为角授予对象权限 
2)可以使用WITH ADMIN OPTION 为角授予系统权限,取消时不是级联 
 
二、系统权限 
所谓系统权限,就是oracle里已经写死的权限,这些权限,我们是不能自己去扩展的,已经在oracle里全部规定好了,我们可以通过查看
system_privilege_map这个数据字典表来查看所有的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 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 为任意用户创建序列的权限   create any snapshot 为任意用户创建快照的权限   create any synonym 为任意用户创建同义名的权限   create any table 为任意用户创建表的权限 
  create any trigger 为任意用户创建触发器的权限   create 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 为用户创建序列的权限   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 index 删除任意索引的权限 
  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 删除公共数据链路的权限   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 any 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 sequence 使用任意序列的权限   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 any 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 * 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_NAME' union select 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权限进行赋予。这里的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的对象权限,其实不然,这里其他类型的对象的对象权限也会记录进来。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。