1. 보안
1. 데이터베이스 보안의 목표
데이터베이스에는 다양한 데이터가 저장이 되어 있으므로, 보안에 유의해야 한다. 조직에서 허가한 사용자만 데이터베이스에 접근할 수 있도록 통제하여 보안을 유지하는 것이다.

I. 물리적 환경에 대한 보안
: 자연 재해처럼 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 데이터베이스를 보호한다.
II. 권한 관리를 통한 보안
: 접근이 허락된 사용자만 권한 내에서 데이터베이스를 사용하도록 보호한다.
III. 운영 관리를 통한 보안
: 접근이 허락된 사용자가 권한 내에서 데이터베이스를 사용하는 동안 데이터 무결성을 유지하도록 제약 조건을 정의하고 위반하지 않도록 통제한다.
2. 권한 관리
1. 권한 관리의 개념
1. 접근 제어 : 계정이 발급된 사용자가 로그인에 성공했을 경우에만 DB에 접근을 허용한다.
2. 각 사용자는 허용된 권한 내에서만 DB를 사용한다.
3. DB의 모든 객체는 객체를 생성한 사용자만 사용 권한을 가진다.
2. 권한 관리를 통한 보안

3. 객체 권한 부여 : GRANT문
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
- 부여 가능한 주요 권한 : INSERT, UPDATE, SELECT, REFERENCES → 여러 권한을 한 번에 부여하는 것도 가능하다.
- PUBLIC : 모든 사용자에게 권한을 똑같이 부여하기 위해 사용
- WITH GRANT OPTION : 다른 사용자에게도 부여할 수 있게 한다.
예제를 한 번 들어봅시다.
고객 테이블에 대한 검색 권한을 사용자 Hong에게 부여해보자.
고객 테이블에 대한 삽입과 삭제 권한을 모든 사용자에게 부여해보자.
고객 테이블을 구성하는 속성 중 등급과 적립금 속성에 대한 수정 권한을 사용자 PARK에게 부여해보자.
4. 시스템 권한 부여 : GRANT 문
-시스템 권한은 데이터베이스 관리자가 부여함
★ 시스템 권한? → CREATE TABLE, CREATE VIEW 등과 관련된 권한들, 객체를 지정할 필요가 없다.
테이블을 생성할 수 있는 시스템 권한을 사용자 Song에게 부여해보자.
5. 객체 권한 취소 : REVOKE 문
- 기본 형식
REVOKE 권한 ON 객체 FROM 사용자 [CASCADE|RESTRICT];
i. CASCADE 옵션 : 권한을 취소할 사용자 A가 B뿐만 아니라 C가 부여받은 권한도 연쇄적으로 함께 취소한다.
ii. RESTRICT 옵션 : 권한을 취소할 사용자 A가 C가 부여받은 권한은 취소하지 않도록 한다.
6. 역할 (Role) 개념
역할이란 여러 권한을 그룹으로 묶어놓은 것이다.
- 역할의 필요성
1) 여러 사용자에게 동일한 권한들을 부여하고 취소하는 작업을 편리하게 수행할 수 있게 함
2) 권한 관리가 쉬워짐
- 역할 생성 : CREATE ROLE문
CREATE ROLE 롤_이름;
- 역할에 권한 추가 : GRANT문
GRANT 권한 ON 객체 TO 롤이름;
- 역할 부여 : GRANT문
GRANT 역할 TO 사용자;
- 역할 취소 : REVOKE문
REVOKE 롤이름 FROM 사용자;
- 역할 제거 : DROP문
DROP ROLE 롤이름;
끝!
'CS 전공 > DB' 카테고리의 다른 글
[데이터베이스] 10. 인덱스 (2) | 2024.06.08 |
---|---|
[데이터베이스] 9. SQL (0) | 2024.06.08 |
[데이터베이스] 8. 관계 데이터 연산 (0) | 2024.06.02 |
[데이터베이스] 7. 정규화 (0) | 2024.04.24 |
[데이터베이스] 6. 데이터베이스 설계 (0) | 2024.04.24 |