最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle11g用户权限管理学习笔记

来源:动视网 责编:小采 时间:2020-11-09 16:08:34
文档

Oracle11g用户权限管理学习笔记

Oracle11g用户权限管理学习笔记:总结工作中经常用到一些Oracle 11g用户权限管理学习笔记: 总结工作中经常用到一些Oracle 11g用户权限管理学习笔记: 1、查看数据库里所有用户各自拥有的角色:select * from (select distinct connect_by_root grantee usern
推荐度:
导读Oracle11g用户权限管理学习笔记:总结工作中经常用到一些Oracle 11g用户权限管理学习笔记: 总结工作中经常用到一些Oracle 11g用户权限管理学习笔记: 1、查看数据库里所有用户各自拥有的角色:select * from (select distinct connect_by_root grantee usern


总结工作中经常用到一些Oracle 11g用户权限管理学习笔记:

总结工作中经常用到一些Oracle 11g用户权限管理学习笔记:

1、查看数据库里所有用户各自拥有的角色:
select * from (select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee ) a
where exists (select 1 from dba_users b where b.username=a.username)
order by 1,2
;

2、查看数据库所有用户的系统权限:
select d.username,d.privilege from
(select a.username,b.privilege from
(select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee) a,
(select grantee,privilege from dba_sys_privs) b
where a.granted_role=b.grantee
union
select grantee,privilege from dba_sys_privs) d
where exists((select 1 from dba_users c where d.username=c.username))
order by 1,2;

3、查看数据库所有用户的表权限
select d.username,d.privilege,d.owner,d.table_name from
(select a.username,b.privilege,b.owner,b.table_name from
(select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee) a,
(select grantee,owner,table_name,privilege from dba_tab_privs) b
where a.granted_role=b.grantee
union
select grantee,privilege,owner,table_name from dba_tab_privs) d
where exists((select 1 from dba_users c where d.username=c.username))
order by 1,2;

4、如何查看拥有DBA角色的用户?
常规做法,,一般是直接查询DBA_ROLE_PRIVS视图。查询语句如下:
select grantee,granted_role from dba_role_privs where granted_role=’DBA’;
这会漏掉用户,测试如下:

正确的查询应按如下语句查询:
select * from (select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee ) a
where a.granted_role=’DBA’;

5、查看拥有SELECT ANY TABLE权限的用户
对于授予角色的,看看都谁有查询所有表的权限
select distinct rp.grantee from dba_role_privs rp ,dba_sys_privs sp
where rp.granted_role = sp.grantee
and sp.privilege like 'SELECT ANY TABLE%'

本文永久更新链接地址:

文档

Oracle11g用户权限管理学习笔记

Oracle11g用户权限管理学习笔记:总结工作中经常用到一些Oracle 11g用户权限管理学习笔记: 总结工作中经常用到一些Oracle 11g用户权限管理学习笔记: 1、查看数据库里所有用户各自拥有的角色:select * from (select distinct connect_by_root grantee usern
推荐度:
标签: 11 用户 学习
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top