"ORACLE 사용자 롤 생성 삭제 관리"의 두 판 사이의 차이
DB CAFE
(→디폴트 롤 (default role, 부여된 롤에 대한 일시 정지 )) |
|||
42번째 줄: | 42번째 줄: | ||
default role all; | default role all; | ||
</source> | </source> | ||
− | |||
* 해당 유저에게 부여된 모든 롤을 사용하지 않는다. | * 해당 유저에게 부여된 모든 롤을 사용하지 않는다. | ||
− | + | <source lang=sql> | |
SQL> alter user 유저명 | SQL> alter user 유저명 | ||
− | default role none; | + | default role none; |
</source> | </source> | ||
2024년 7월 4일 (목) 18:35 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 롤 생성 삭제 관리[편집]
1.1 ROLE 생성[편집]
CREATE ROLE RL_MANAGER;
1.2 ROLE에 권한 부여[편집]
GRANT create session, create table
TO RL_MANAGER;
1.3 권한이 부여된 ROLE을 USER나 ROLE에 부여[편집]
GRANT RL_MANAGER
TO scott, test;
1.4 롤에 부여된 권한 회수[편집]
REVOKE RL_MANAGER
FROM 유저명
1.5 디폴트 롤 (default role, 부여된 롤에 대한 일시 정지 )[편집]
alter user 유저명
default role 롤1, 롤2;
-- or
-- 해당 유저에게 부여된 모든 롤을 사용하되 롤3은 제외한다.
alter user 유저명
default role all except 롤3;
- 유저에게 롤1, 롤2, 롤3이 부여되어 있다고 할 때, 위 명령 실행시 유저는 롤1과 롤2만 쓰고 나머지 롤3은 일시적으로 안쓴다.
</source>
- 해당 유저에게 부여된 모든 롤을 사용한다.
alter user 유저명
default role all;
- 해당 유저에게 부여된 모든 롤을 사용하지 않는다.
SQL> alter user 유저명
default role none;
1.6 셋 롤(set role)[편집]
- 유저가 일시적으로 자기가 부여받은 롤 범위 내에서 사용과 미사용을 제어 가능.
SQL>
set role 롤1; -- 해당 유저는 롤1을 사용함.
set role all; -- 해당 유저는 부여받은 롤을 모두 사용함.
1.7 롤 생성 후 바로 적용이 되지 않을때[편집]
- 일단 현재 세션을 종료 후 재접속 해본다.
1.7.1 현재 세션에 활성화 된 롤 체크[편집]
-- Check active roles in the current session
SELECT * FROM SESSION_ROLES;
1.8 롤 삭제[편집]
DROP ROLE RL_MANAGER
1.9 (예제) 롤 생성 / 테이블 권한 부여 / 확인[편집]
- 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;
-- 세션 생성권한 부여
GRANT CREATE SESSION TO 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;
1.9.1 롤/시스템권한/테이블권한 조회[편집]
-- 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';
1.9.2 롤 활성화[편집]
-- Set the role to be active
SET ROLE my_new_role;
2 롤 조회 딕셔너리 뷰[편집]
딕셔너리 뷰 | 설명 |
---|---|
DBA_ROLES | 롤 목록 조회 |
ROLE_ROLE_PRIVS | 롤에게 부여된 롤 권한 조회 |
ROLE_SYS_PRIVS | 롤에게 부여된 시스템 권한 조회 |
ROLE_TAB_PRIVS | 롤에게 부여된 테이블 권한 조회 |
DBA_ROLE_PRIVS | 조회가능한 롤 목록 |
USER_TAB_PRIVS_RECD | 유저에게 부여된 오브젝트 권한 |
USER_COL_PRIVS_MADE | 유저 오브젝트 컬럼에 부여된 오브젝트 권한 |
USER_COL_PRIVS_RECD | 특정 컬럼에 대해 유저에게 부여된 오브젝트 권한
Object privileges granted to the user on specific columns |
SESSION_ROLES |
2.2 롤에 부여된 시스템 권한조회[편집]
- - ROLE_SYS_PRIVS 롤에 부여된 시스템 권한 조회
- SELECT ANY DICTIONARY ....
- CREATE SEQUENCE / ANY SYNONYM ....
- DROP ....
- ALTER SESSION .....
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE IN('롤이름')
2.3 롤에 부여된 테이블 권한 조회[편집]
SELECT *
FROM ROLE_TAB_PRIVS
WHERE ROLE IN('롤이름')