1. 권한
- READ ONLY (SELECT)
- WRITE (ALTER, DROP, CREATE 등)
- 객체 참조 (SYNONYM)
2. 권한 종류
2-1. 시스템 권한
SELECT * FROM DBA_SYS_PRIVS;
사용자 계정 | RESOURCE | 개체 생성/변경/제거 |
CONNECT | DB 연결 권한(계정 생성 후 필수 부여. 부여하지 않으면 접속 불가) | |
DBA | DB 관리자 권한 | |
시스템 권한 | CREATE USER | 데이터베이스 유저생성 권한 |
CREATE/SELECT/ALTER ANY TABLE/VIEW |
모든 유저의 테이블/뷰 등 생성/조회/변경 | |
CREATE SESSION | 데이터베이스 접속 권한 | |
CREATE TABLE | 테이블 생성 권한 |
2-2. 객체 권한
SELECT * FROM DBA_TAB_PRIVS;
오브젝트 권한 (DB 객체) |
ALTER, INSERT, SELECT, UPDATE, DELETE |
테이블에 대한 데이터 삽입 갱신 및 삭제 권한 |
2-3. 롤
SELECT * FROM DBA_ROLE_PRIVS;
- 여러 개의 권한을 그룹으로 묶은 권한의 묶음으로 사용자에게 ROLE을 부여하면 해당 ROLE이 가지고 있는 권한들을 가질 수 있음 (다음 포스팅에서 자세히 설명)
2-4. 기타 옵션
기타옵션 | WITH GRANT OPTION | 권한을 할당받은 유저가 다른 유저에게 해당 권한을 재할당 |
PUBLIC | 해당 권한을 DB에 존재하는 모든 유저에게 할당 |
3. 권한 부여
3-1. 계정에 권한 부여
GRANT 권한1, 권한2 USER TO 사용자;
3-2. 객체에 권한 부여
GRANT SELECT/UPDATE/INSERT/DELETE ON [유저명].[테이블명] TO [권한을 부여할 유저명];
4. 권한 회수
4-1. 계정에 권한 회수
REVOKE 권한1, 권한2 USER FROM 사용자;
4-2. 객체에 권한 회수
REVOKE SELECT/UPDATE/INSERT/DELETE ON [유저명].[테이블명] FROM [권한을 부여할 유저명];
5. 실습 : 권한 부여 및 회수
5-1. 계정 생성
- system 계정에서 SCOTT 계정을 생성한다.
CREATE USER SCOTT IDENTIFIED BY scott;
5-2. 권한 부여
- system 계정에서 SCOTT 계정 접속 권한 및 계정 생성 권한을 부여한다.
- SCOTT 계정에 A.TEST테이블의 조회 권한을 부여한다
GRANT CONNECT, CREATE USER TO SCOTT;
GRANT SELECT ON A.TEST TO SCOTT;
5-3. SCOTT계정 접속
-- LINUX
conn SCOTT/scott
-- dbeaver 또는 orange같은 DB Tool사용
해당 DB에 username, password 사용해 접속
5-4. 권한 회수
- system 계정에서 SCOTT 계정 생성 권한을 회수한다.
- SCOTT 계정에 A.TEST테이블의 조회 권한을 회수한다
REVOKE CREATE USER FROM SCOTT;
REVOKE SELECT ON A.TEST FROM SCOTT;
6. ROLE
6-1. 개념 및 필요성
- 여러 개 권한을 하나의 그룹으로 묶은 것
- ROLE을 사용자에게 부여하면, ROLE에 속한 권한들을 한 번에 사용자 계정에 부여하거나 회수 가능해 간소화 가능
- 업무별로 필요한 권한만을 포함해 보안 유지 가능
- 같은 역할을 하는 여러 사용자에게 동일한 권한 부여를 통한 일관성 유지 가능
- 유지보수 용이
6-2. ROLE 부여, 조회, 회수, 삭제
1) ROLE 생성
CREATE ROLE 롤이름;
2) 권한 부여
GRANT 권한1, 권한2, 권한3,,, TO 롤이름;
3) ROLE을 사용자에게 부여
GRANT 롤이름 TO 사용자명;
4) ROLE을 사용자로부터 회수
REVOKE 롤이름 FROM 사용자명;
5) 사용자의 ROLE 확인
SELECT *
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = '사용자이름';
6) ROLE에 포함된 권한 확인
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE = '롤이름';
7) ROLE 삭제
DROP 롤이름;
'Oracle' 카테고리의 다른 글
[Oracle] 오라클 데이터베이스 초기화 파라미터 (1) | 2025.05.03 |
---|---|
[Oracle] spfile에서 pfile로 복사해서 비교하기 (0) | 2025.05.03 |
[Oracle] User별 Quota 확인 및 변경(+ Unlimited Tablespace) (0) | 2025.05.03 |
[Oracle] 시노님(Synonym) 의미 및 생성/조회/삭제 (0) | 2025.05.03 |
[Oracle] DB Link 사용 방법(생성, 삭제, 조회, ORA-12154, ORA-01017에러) (0) | 2025.05.01 |