유저 액세스 제어
※전제 예시
DBA(DB관리자) : admin - admin
DEV(개발자) : jiha - pwd
USER(사용자) : kjh - pwd
- DBA
-> DEPT와 EMP를 CREATE TABLE
-> DBA는 DEPT와 EMP를 GRANT
- DEV
-> DEV는 조회를 해야 함 DBA.EMP
-> CREATE SYNONYM EMP FOR DBA.EMP
- USER
-> SELECT * ...
1. 사용자 생성과 권한 부여
- 권한
-> 시스템 권한 : 데이터베이스 내에서 특정 작업 수행
--> 사용자 생성 및 제거
--> 테이블을 만들 수 있음(소유권은 테이블을 만든 사용자에게 있음)
--> 테이블 제거 및 백업
-> 스키마 : 테이블, 뷰 및 시퀀스와 같은 객체들의 모음
- CREATE USER admin IDENTIFIED BY admin;
-> USER는 admin 패스워드는 admin
- GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE SESSION TO admin
-> admin 에게 권한 부여
-> CREATE TABLE : 테이블을 생성 및 제거 할 수 있는 권한
-> CREATE VIEW : 테이블에서 VIEW를 생성 할 수 있는 권한
-> CREATE SEQUENCE : SEQUENCE를 부여할 테이블을 만들 수 있는 권한
-> CREATE SESSION : DB에 접근할 수 있는 권한
- GRANT DBA TO admin;
-> DBA에 저장된 모든 권한목록을 admin에게 권한 부여
2. ROLE(롤)
- 권한을 모아 놓은 집합의 테이블
- ROLE 생성
->
-- manager라는 권한 집합을 생성
CREATE ROLE manager;
- ROLE에 권한 부여
->
-- manager에 권한들을 저장
GRANT CREATE TABLE, CREATE VIEW ... TO manager;
- 유저에게 ROLE 부여
->
-- admin에게 manager라는 ROLE에 담긴 모든 권한 부여
GRANT manager TO admin;
3. 암호 변경
- DBA는 사용자 계정을 생성하고 초기화 할 수 있음
- ALTER USER문을 사용하여 암호를 변경할 수 있음
->
ALTER USER admin IDENTIFIED BY new_pwd;
4. 객체들의 권한
- 객체 권한은 객체마다 다름
- 객체 소유자는 해당 객체에 대한 모든 권한을 소유하고 있음
- 소유자는 자신의 객체에 대한 특정 권한을 부여할 수 있음
- 권한 부여 방법
->
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
예)
->
-- employees 테이블에 대한 SELECT 권한을 admin에게 부여
GRANT select
ON employees
TO admin;
5. 권한 회수(취소)
- REVOKE문을 사용하여 다른 유저에게 부여된 권한을 취소할 수 있음
- WITH GRANT OPTION절을 통해 다른 유저에게 부여된 권한을 취소할 수도 있음
->
REVOKE {privilege [, privilege...]|ALL}
ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
예)
->
-- departments 테이블에 대해 사용자 admin에게 부여된
-- SELECT및 INSERT권한을 취소
REVOKE SELECT, INSERT
ON departments
FROM admin;
'Database - Oracle DB > 2주차(Database - Oracle DB)' 카테고리의 다른 글
[SQL] DB 스터디 - 13 (0) | 2019.01.09 |
---|---|
[SQL] DB 스터디 - 12 (0) | 2019.01.08 |
[SQL] DB 스터디 - 10 (1) | 2019.01.08 |
[SQL] DB 스터디 - 09 (0) | 2019.01.07 |
[SQL] DB 스터디 - 08 (0) | 2019.01.07 |