보안
데이터베이스 보안
데이터베이스 보안
- 조직에서 허가한 사용자만 데이터베이스에 접근할 수 있도록 통제하여 보안을 유지하는 것
1. 물리적 환경에 대한 보안
- 자연 재해 등으로부터 보호
- 자연 재해처럼 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 데이터베이스를 보호
2. 권한 관리를 통한 보안
- 권한이 없는 사용자로부터 보호
- 계정이 발급된 사용자만 데이터베이스에 접근할 수 있도록 통제하고, 사용자별로 사용 범위와 수행 가능한 작업 내용을 제한
3. 운영 관리를 통한 보안
- 권한이 있는 사용자로부터 보호
- 접근이 허락된 사용자가 권한 내에서 데이터베이스를 사용하는 동안 데이터 무결성을 유지하도록 제약조건을 정의하고 위반하지 않도록 통제
권한 관리
권한 관리
권한 관리 개념
- 접근 제어(access control): 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근 허용
- 사용자 계정 관리는 데이터베이스 관리자가 담당
- 각 사용자는 허용된 권한 내에서만 데이터베이스 사용
- 데이터베이스의 모든 객체는 객체를 생성한 사용자만 사용 권한을 가짐
- 데이터베이스 객체의 소유자는 필요에 따라 SQL 문을 이용해 다른 사용자에게 사용 권한을 부여하거나 취소할 수 있음
권한 관리를 통한 보안
- 객체 권한
- 역할
객체 권한
객체 권한 부여: GRANT 문
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
- 부여 가능한 주요 권한: INSERT, DELETE, UPDATE, SELECT, REFERENCES
- REFERENCES: 외래키 제약조건을 정의할수 있는 권한
- UPDATE, SELECT는 테이블의 일부 속성에 대한 권한 부여도 가능
- 여러 권한 한 번에 부여하는 것도 가능
- 기본적으로 GRANT 문으로 부여받은 권한은 다른 사용자에게 부여할 수 없음
- PUBLIC: 모든 사용자에게 권한을 똑같이 부여하고 싶다면 특정 사용자를 지정하는 대신 PUBLIC 사용
- WITH GRANT OPTION: 사용자가 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있도록 함
시스템 권한 부여: GRANT 문
- 시스템 권한: 데이터베이스 관리와 관련된 작업에 대한 권한
- 데이터 정의어(DDL): CREATE TABLE, CREATE VIEW ...
- 시스템 권한을 부여할 때는 객체를 지정할 필요가 없음
GRANT CREATE TABLE TO Yoon;
객체 권한 취소: REVOKE 문
- 객체 소유자가 다른 사용자에게 부여한 객체의 사용 권한을 취소
REVOKE 권한 ON 객체 FROM 사용자 CASCADE | RESTRICT;
- 사용자 A가 사용자 B에게, 사용자 B는 사용자 C에게 같은 권한을 부여한 경우
- CASCADE: 권한을 취소할 사용자 A가 B뿐 아니라 C가 부여받은 권한도 연쇄적으로 함께 취소
- RESTRICT: 권한을 취소할 사용자 A가 C가 부여받은 권한은 취소하지 않도록 함
시스템 권한 취소: REVOKE 문
- 데이터베이스 관리자가 다른 사용자에게 부여한 시스템 권한을 취소
- 특정 객체에 대한 권한 취소가 아니므로 객체를 지정할 필요 없음
역할
Role
- 여러 권한을 그룹으로 묶어 놓은 것
- 여러 사용자에게 동일한 권한들을 부여하고 취소하는 작업을 편리하게 수행할 수 있도록 함
- 사용자에게 부여하고 싶은 여러 권한을 역할에 미리 넣어두고 필요할 때 역할을 부여하면 여러 권한을 한 번에 부여할 수 있음
- 권한 관리가 쉬워짐
- 새로운 권한의 추가, 기존 권한의 취소 등 역할에 변화가 생기면 해당 역할을 부여받은 모든 사용자에게 변화가 그대로 전달
역할 생성: CREATE ROLE 문
- 새로운 역할의 생성은 데이터베이스 관리자가 담당
CREATE ROLE 롤이름;
역할에 권한 추가: GRANT 문
GRANT 권한 ON 객체 TO 롤이름;
- 객체와 관련된 권한에 역할을 추가하는 작업은 객체의 소유자가 담당
역할 부여: GRANT 문
GRANT 롤이름 TO 사용자;
- 역할을 사용자에게 부여하는 것은 데이터베이스 관리자가 담당
역할 취소: REVOKE 문
REVOKE 롤이름 FROM 사용자;
- 사용자에게 부여한 역할의 취소는 데이터베이스 관리자가 담당
역할 제거: DROP ROLE 문
DROP ROLE 롤이름;
- 역할을 제거하면 제거된 역할을 부여받은 모든 사용자에 대해 역할에 속해 있던 권한이 모두 취소됨
- 역할 제거는 데이터베이스 관리자가 담당
'CS > 데이터베이스' 카테고리의 다른 글
12. 데이터 과학과 빅데이터 (0) | 2023.12.31 |
---|---|
11. 데이터베이스 응용 기술 (0) | 2023.12.20 |
9. 회복과 동시성 제어 (1) | 2023.12.02 |
8. 정규화 (0) | 2023.11.30 |
7. 데이터베이스 설계 (1) | 2023.11.27 |