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 테이블 전체에 대한 접근은 불가하다.
'Computer Science > Database' 카테고리의 다른 글
데이터베이스 설계 1) 기본 (0) | 2020.11.26 |
---|---|
무결성과 보안 3) 사용자 계정 생성과 권한 부여, 오라클 기본 롤 (0) | 2020.11.26 |
무결성과 보안 1) 무결성 제약 (0) | 2020.11.25 |
SQL 6) 뷰(View)란? 뷰 생성 방법 (0) | 2020.11.25 |
SQL 5) 중첩 질의 (서브쿼리 subquery) (0) | 2020.10.21 |