반응형

 

 

 

DBMS는 허가되지 않은 사용자, 즉 권한이 없는 사용자로부터의 데이터 접근을 차단한다.

 

1. 데이터베이스에서의 사용 권한

: 사용자가 데이터베이스 내의 특정 객체에 대해 특정 연산을 수행할 수 있는 권리

 

1) 특정 객체 - 테이블, 뷰, 필드, 저장 프로시저 등 데이터베이스의 구성 요소

2)특정 연산 - DML(SELECT, DELETE, INSERT, UPDATE) , DDL(CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX)

 

 

 

 

 

2. 권한에 따른 사용자 분류

 

1) 데이터베이스 관리자(DBA)

2) 객체 소유자(owner) : 생성한 객체에 대한 모든 권한 소유 (해당 객체에 대한 권한 부여나 회수도 가능)

3) 기타 사용자 : 기본적으로는 다른 사용자의 객체에 대한 어떠한 권한도 없음, 다만 객체 소유자나 DBA로부터 권한을 부여받을 수 있음

 

 

 

 

< SQL에서의 권한 제어 >

 

3. GRANT

: 권한을 부여하는 명령

 

 

1) 형식

 

 

<권한리스트> : SELECT, DELETE, UPDATE, INSERT, REFERENCES

 

 

 

 

 

2) 예시

 

 

 

 

 

 

3)

- REFERENCE 권한이란?

: 테이블을 외래키로 참조할 수 있는 권한 

: 권한이 없으면 student 테이블은 department 테이블을 참조할 수 없다.

 

 

 

- REFERENCE 권한 부여

 

: dept_id 는 테이블 department 의 기본키이다. 기본키만을 외래키로 참조할 수 있다.

 

 

 

 

 

 

 

4) 모든 사용자에게 권한 부여

 

 

 

 

5) 모든 종류의 권한을 하나의 명령으로 부여하는 방법

 

 

 

 

 

 

 

6) 부여받은 권한을 다른 사용자에게 전파할 수 있는 옵션

 

 

단, chang 은 더 이상 다른 사용자에게 권한을 부여할 수 없음

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. REVOKE

: 다른 사용자에게 부여한 권한을 회수(취소)하기 위한 명령

 

: 이 경우, kim 뿐만 아니라 권한을 부여한 chang으로부터 자동적으로 권한을 회수함

 

 

 

 

 

 

 

 

 

 

 

5. ROLE(롤)

 

: 권한별로 사용자 그룹을 만들어 그룹에 권한을 부여하는 방법

: 롤은 데이터베이스 관리자만 생성 가능하다.

 

 

 

 

1) 롤 생성 형식 및 예시

 

 

 

 

2) 롤 배정 형식 및 예시

 

 

 

 

3) 롤에 권한 부여 ( GRANT문의 형식과 동일 )

 

 

 

 

4) 롤에 부여된 권한 회수

 

 

 

 

 

5) 배정된 롤에서 사용자 배제

 

 

 

 

 

 

6) 롤 삭제

 

 

 

 

 

 

 

 

 

6. 뷰를 이용한 권한 제어

: 특정 테이블에서 일부 필드 혹은 일부 레코드들에 대해서 접근을 허용할 경우 이 부분들을 뷰로 정의

 

 

: kim은 junior 에 대한 접근은 가능하지만, student 테이블 전체에 대한 접근은 불가하다.

 

반응형

+ Recent posts