티스토리 뷰
이번 게시글은 Oracle DB에서 사용자에게 시스템 권한을 부여하는 SQL에 대해서 작성.
시스템 권한이란?
시스템 권한은 사용자가 데이터베이스를 조작하기 위한 권한을 의미한다.
예를 들어
A라는 사용자가 아래의 권한을 가지고 있다고 가정해보자.
- 데이터베이스를 만들거나 변경하는 권한
- 테이블이나 인덱스를 만들거나 변경하는 권한
테이블을 생성하는 권한은 「CREATE TABLE」권한으로 부여한 스키마 내에서만 테이블을 작성할 수 있다.
다른 스키마에서 테이블을 생성하려면 「CREATE_ANY_TABLE」와 같이 ANY를 붙여야 한다.
・시스템 권한과 오브젝트 권한의 차이
- 시스템 권한은 데이터베이스에 대한 권한이고
- 오브젝트 권한은 임의의 테이블이나 오브젝트에 대한 권한
이라는 차이가 있다.
■ 시스템 권한을 확인
사용자에게 부여된 시스템 권한은 DBA_SYS_PRIVS에서 확인이 가능하다.
※ Oracle DB에서 사용자에게 부여된 권한을 확인하는 SQL은 https://kr98gyeongim.tistory.com/106 를 참고
■ 시스템 권한을 부여
사용자에게 시스템 권한을 부여할 때는 GRANT문을 사용한다.
GRANT문은 시스템 권한 이름과 사용자 이름을 지정한다.
GRANT 시스템권한명 TO 사용자명
[WITH ADMIN OPTION];
- [WITH ADMIN OPTION]을 지정함으로써 역할을 부여받은 사용자가 그 권한을 다른 사용자에게 부여할 수 있다.
- 시스템 권한은 100개가 넘게 있으므로,, 필요할 때마다 검색하는 방법 밖에 없는듯하당..ㅎ
※ 시스템 권한 목록은 https://kr98gyeongim.tistory.com/103 에서 참고
<예제1 : 하나의 권한을 부여하는 방법>
GRANT CREATE TABLE TO user1; --USER1에게 테이블을 생성하는 시스템 권한을 부여
GRANT SELECT ANY TABLE TO user1; -- USER1에게 테이블의 조회를 할 수 있는 권한을 부여
<예제 2 : 동시에 여러 권한을 부여하는 방법>
또한 GRANT문에서는 여러 시스템 권한을 동시에 부여할 수 있다.
여러 권한을 부여하는 경우 시스템 권한 이름을 콤마(,)로 구분해서 추가하면 된다.
GRANT CREATE INDEX,CREATE VIEW TO user1;
-- USER1에게 인덱스를 생성하는 시스템 권한과 뷰를 생성하는 시스템 권한을 부여
<예제 3: 모든 권한을 부여>
GRANT 문은 한 번에 모든 시스템 권한 (SELECT ANY DICTIONARY 제외)을 부여할 수 있다.
GRANT ALL PRIVILEGES TO user1;
■ 시스템 권한 취소
사용자의 시스템 권한을 취소할 때는 REVOKE문을 사용한다.
REVOKE문은 취소하려는 시스템 권한 이름과 사용자 이름을 지정한다.
REVOKE 시스템권한명 FROM 사용자명;
<예제1 : 하나의 권한을 취소하는 방법>
REVOKE CREATE TABLE FROM user1;
REVOKE SELECT ANY TABLE FROM user1;
<예제2 : 동시에 여러 권한을 취소하는 방법>
REVOKE CREATE INDEX,CREATE VIEW FROM user1;
<예제3 : 모든 권한을 취소하는 방법>
REVOKE ALL PRIVILEGES FROM user1;
<정리>
- 시스템 권한 부여는 GRANT문, 취소는 REVOKE문을 사용한다.
- GRANT ALL~로 모든 권한 부여가 가능하며, REVOKE ALL~로 모든 권한을 취소할 수 있다.
'Oracle > [oracle] DB관리' 카테고리의 다른 글
[Oracle] 사용자에게 부여된 권한 확인 (0) | 2022.06.08 |
---|---|
[Oracle] 오브젝트 권한 부여 및 취소 (0) | 2022.06.08 |
[Oracle] 시스템 권한 목록 (0) | 2022.06.08 |
[Oracle] 오브젝트 권한 확인 (0) | 2022.05.30 |
[ORACLE] 시노님(SYNONYM) 조회/생성/삭제/이름 변경 SQL (0) | 2021.01.07 |
- Total
- Today
- Yesterday
- 시간차이
- TrimEnd
- 초기화파라미터파일
- rollback
- 유틸리티에러
- C#
- 동기통신
- DECLARE절
- PL/SQL 실행문
- 후나빙
- Oracle
- grant
- BEGIN절
- DBA_SYS_PRIVS
- in/out/ref 예제
- 유틸리티
- PL/SQL 예외처리문
- vba
- VB.Net
- 에러
- in/out/ref
- EXCEPTION절
- in/out/ref 공통점
- 참조전달
- in/out/ref 차이점
- pl/sql
- USER_SYS_PRIVS
- REVOKE
- commit
- NLog
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |