• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle 用户、角色权限管理上的几个误区

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

Oracle目前没有提供查看某个用户所有角色或所有权限的视图。要查看这类信息,一般通过如下SQL语句:

如果你想查看数据库中哪些用户具有修改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

本文来源gaodai.ma#com搞#代!码(网

count(*) from session_roles;

COUNT(*)
———-
20

SQL>

这两个视图,只能查看当前连接用户拥有的权限和角色。

DBA如果需要查看其它用户的权限、角色,必须切换用户登入,再执行上述SQL。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle 用户、角色权限管理上的几个误区

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址