Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 用户、角色权限管理上的几个误区

如果你想查看数据库中哪些用户具有修改SCOTT.DEPT表的权限,你会怎么查?答:select * from dba_tab_privs where OWNER="SCOTT" and TABLE_NAME="DEPT";这个语句结果是错误的.......如果角色A,有修改此表的权限,所有具有角色A的用户都被漏掉了。如果你想查看哪些用户具有DBA权限,你会怎么查?你确定查询结果是正确的?答:select grantee,granted_role from dba_role_privs where granted_role="DBA";这个语句结果是错误的......,具体在第三部分测试。如果你将CONNECT、RESOURCE角色授予某个用户,同时授予SELECT ON SCOTT.DEPT的权限,该如何查看这个用户拥有的权限明细?答:不好查。如何对比两个用户的表级权限有无差异?答:select * from dba_tab_privs where grantee="A" ;  select * from dba_tab_privs where grantee="B" ;一看就出来了。这个语句结果是错误的,如果将角色C授予A,角色D授予B。dba_tab_privs中都不会有记录。如果角色C、D权限不一致,问题就出来了。看完本文,你就明白为什么了。呵,相信本文可以让您对Oracle的权限管理更加得心应手。一、通用查询Oracle目前没有提供查看某个用户所有角色或所有权限的视图。要查看这类信息,一般通过如下SQL语句:SQL> select count(*) from session_privs;
 
  COUNT(*)
----------
     202
 
SQL> select count(*) from session_roles;
 
  COUNT(*)
----------
        20
 
SQL>这两个视图,只能查看当前连接用户拥有的权限和角色。DBA如果需要查看其它用户的权限、角色,必须切换用户登入,再执行上述SQL。
  • 1
  • 2
  • 3
  • 4
  • 下一页
C++和C#访问MySQL的简单代码示例处理RMAN-08120: WARNING: archived log not deleted, not yet applied by standby相关资讯      Oracle入门基础教程  Oracle 用户权限  Oracle角色权限 
  • Linux x86 and x86-64 系统中的  (08/05/2014 10:12:29)
  • Oracle系统繁忙时,快速定位  (02/18/2013 19:31:55)
  • Oracle手工建库笔记  (12/28/2012 11:45:03)
  • Oracle 中极易混淆的几个 NAME 的  (07/29/2014 21:04:17)
  • Oracle数据库用SQL实现快速分页  (12/29/2012 14:02:30)
  • Oracle自治事务引起的死锁  (12/27/2012 18:30:46)
本文评论 查看全部评论 (0)
表情: 姓名: 字数