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, grantedrole from dba_role_privs where granted_role=’DBA’; 이것 은 사용 자 를 빠 뜨 릴 수 있 습 니 다. 테스트 는 다음 과 같 습 니 다.
올 바른 조 회 는 다음 문장 에 따라 조회 해 야 합 니 다: select * from (select distinct connect by root grante username, granted role from dba role privs connect by prior granted role = grante) a where a. grantedrole=’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%'

참고 글 주소:http://blog.csdn.net/totoov5/article/details/8351931

좋은 웹페이지 즐겨찾기