"ORACLE 사용자 롤 생성 삭제 관리"의 두 판 사이의 차이
DB CAFE
(→롤 조회 딕셔너리 뷰) |
(→(예제) 롤 생성 / 테이블 권한 부여 / 확인) |
||
55번째 줄: | 55번째 줄: | ||
SELECT * FROM DBCAFE.TB_DBCAFE; | SELECT * FROM DBCAFE.TB_DBCAFE; | ||
+ | </source> | ||
+ | |||
+ | == 롤 생성 후 바로 적용이 되지 않을때 == | ||
+ | === 현재 세션에 활성화 된 롤 체크 === | ||
+ | <source lang=sql> | ||
+ | -- Check active roles in the current session | ||
+ | SELECT * FROM SESSION_ROLES; | ||
+ | </source> | ||
+ | === 롤/시스템권한/테이블권한 조회 === | ||
+ | <source lang=sql> | ||
+ | -- Check the roles granted to the user | ||
+ | SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'MY_NEW_USER'; | ||
+ | |||
+ | -- Check the privileges granted to the role | ||
+ | SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'MY_NEW_ROLE'; | ||
+ | SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'MY_NEW_ROLE'; | ||
+ | </source> | ||
+ | === 롤 활성화 === | ||
+ | <source lang=sql> | ||
+ | -- Set the role to be active | ||
+ | SET ROLE my_new_role; | ||
</source> | </source> | ||
2024년 5월 30일 (목) 23:01 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 ROLE 생성[편집]
CREATE ROLE RL_MANAGER;
2 ROLE에 권한을 부여[편집]
GRANT create session, create table
TO RL_MANAGER;
3 권한이 부여된ROLE을 USER나 ROLE에 부여[편집]
GRANT RL_MANAGER
TO scott, test;
4 롤에 부여된 권한 회수[편집]
REVOKE RL_MANAGER
FROM 유저명
5 롤 삭제[편집]
DROP ROLE RL_MANAGER
6 (예제) 롤 생성 / 테이블 권한 부여 / 확인[편집]
- DBCAFE 유저에 테이블 생성
- RL_DBCAFE_ALL 롤을 생성
- DBCAFE 유저에 생성된 테이블의 CRUD 권한을 RL_DBCAFE_ALL롤에 부여
- RL_DBCAFE_ALL롤을 CYKIM 유저에게 부여
- CYKIM 유저가 DBCAFE 유저 테이블 CRUD 처리 확인
-- 1. DBCAFE 유저에 테이블 생성
CREATE TABLE DBCAFE.TB_DBCAFE (A NUMBER);
INSERT INTO DBCAFE.TB_DBCAFE VALUES (1);
COMMIT;
-- 2. 롤 생성
CREATE ROLE RL_DBCAFE_ALL;
-- 3.DBCAFE.TB_DBCAFE 테이블 CRUD 권한을 RL_DBCAFE_ALL 에게 부여
GRANT SELECT,INSERT,UPDATE,DELETE ON DBCAFE.TB_DBCAFE TO RL_DBCAFE_ALL ;
-- 4. 일반사용자 CYKIM 에게 RL_DBCAFE_ALL 롤 부여
GRANT RL_DBCAFE_ALL TO CYKIM;
-- 5.일반사용자 CYKIM유저가 DBCAFE.TB_DBCAFE 테이블에 CRUD 되는지 확인
INSERT INTO DBCAFE.TB_DBCAFE
VALUES (2);
COMMIT;
SELECT * FROM DBCAFE.TB_DBCAFE;
7 롤 생성 후 바로 적용이 되지 않을때[편집]
7.1 현재 세션에 활성화 된 롤 체크[편집]
-- Check active roles in the current session
SELECT * FROM SESSION_ROLES;
7.2 롤/시스템권한/테이블권한 조회[편집]
-- Check the roles granted to the user
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'MY_NEW_USER';
-- Check the privileges granted to the role
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'MY_NEW_ROLE';
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'MY_NEW_ROLE';
7.3 롤 활성화[편집]
-- Set the role to be active
SET ROLE my_new_role;
8 롤 조회 딕셔너리 뷰[편집]
딕셔너리 뷰 | 설명 |
---|---|
ROLE_SYS_PRIVS | 롤에게 부여된 시스템 권한 조회 |
ROLE_TAB_PRIVS | 롤에게 부여된 테이블 권한 조회 |
USER_ROLE_PRIVS | 유저가 조회가능한 롤 목록 |
USER_TAB_PRIVS_RECD | 유저에게 부여된 오브젝트 권한 |
USER_COL_PRIVS_MADE | 유저 오브젝트 컬럼에 부여된 오브젝트 권한 |
USER_COL_PRIVS_RECD | 특정 컬럼에 대해 유저에게 부여된 오브젝트 권한
Object privileges granted to the user on specific columns |
USER_SYS_PRIVS | 유저에게 부여된 시스템 권한 |
8.2 롤에 부여된 시스템 권한조회[편집]
- - ROLE_SYS_PRIVS 롤에 부여된 시스템 권한 조회
- SELECT ANY DICTIONARY ....
- CREATE SEQUENCE / ANY SYNONYM ....
- DROP ....
- ALTER SESSION .....
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE IN('롤이름')
8.3 롤에 부여된 테이블 권한 조회[편집]
SELECT *
FROM ROLE_TAB_PRIVS
WHERE ROLE IN('롤이름')