Database - Oracle DB/2주차(Database - Oracle DB)

[SQL] DB 스터디 - 11

김야키 2019. 1. 8. 14:58


유저 액세스 제어


※전제 예시

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