보안
- DB 보안의 목표: 조직에서 허가한 사용자만 DB에 접근할 수 있도록 통제하여 보안을 유지하는 것
- 물리적 환경에 대한 보안: 자연 재해 등으로부터 보호
- 권한 관리를 통한 보안: 권한이 없는 사용자로부터 보호
- 운영 관리를 통한 보안: 권한이 있는 사용자로부터 보호
권한 관리
- 권한 관리의 개념
- 접근 제어(access control)
- 계정이 발급된 사용자가 로그인에 성공했을 경우에만 DB에 접근 허용
- 사용자 계정 관리는 데이터베이스 관리자(DBA; DataBase Administration)가 담당
- 각 사용자는 허용된 권한 내에서만 DB를 사용
- DB의 모든 객체는 객체를 생성한 사용자만 사용 권한을 가짐 → DB 객체의 소유자는 필요에 따라 SQL문을 이용해 다른 사용자에게 사용 권한을 부여하거나 취소할 수 있
- 접근 제어(access control)
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
- 객체 권한 부여 : GRANT 문
- 객체의 소유자가 다른 사용자에게 객체에 대한 사용 권한을 부여
- 부여 가능한 주요 권한: INSERT, DELETE, UPDATE, SELECT, REFERENCES
- REFERENCES: 외래키 제약조건을 정의할 수 있는 권한
- 여러 권한을 한 번에 부여하는 것도 가능
- 기본적으로 GRANT 문으로 부여받은 권한은 다른 사용자에게 부여할 수 없음
- PUBLIC: 모든 사용자에게 권한을 똑같이 부여하고 싶다면 PUBLIC 키워드 이용
- WITH GRANT OPTION: 사용자가 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있도록 함
GRANT 시스템권한 TO 사용자;
- 시스템 권한 부여 : GRANT 문
- 시스템 권한은 DBA가 부여함 (시스템 권한: DB 관리와 관련된 작업 DDL에 대한 권한)
- 시스템 권한을 부여할 때는 객체를 지정할 필요가 없음
REVOKE 권한 ON 객체 FROM 사용자 CASCADE|RESTRICT;
- 객체 권한 취소 : REVOKE 문
- 객체 소유자가 다른 사용자에게 부여한 객체의 사용 권한을 취소
- 사용자 A가 사용자 B에게, 사용자 B는 사용자 C에게 같은 권한을 부여한 경우
- CASCADE 옵션: 권한을 취소할 사용자 A가 B뿐만 아니라 C가 부여받은 권한도 연쇄적으로 함께 취소
- RESTRICT 옵션: 권한을 취소할 사용자 A가 C가 부여받은 권한은 취소하지 않도록 함
REVOKE 시스템권한 FROM 사용자;
- 시스템 권한 취소 : REVOKE 문
- DBA가 다른 사용자에게 부여한 시스템 권한을 취소
- 권한 목록: 권한 부여에 관한 내용을 기록한 것
사용자들에게 어떤 권한을 부여했는지, WITH GRANT OPTION을 포함하여 권한을 부여했는지 등 - 역할(role)의 개념과 필요성
- 여러 사용자에게 동일한 권한들을 부여하고 취소하는 작업을 편리하게 수행할 수 있도록 함
- 권한 관리가 쉬워짐
CREATE ROLE 역할;
- 역할 생성 : CREATE ROLE 문
- 새로운 역할의 생성은 DBA가 담당
- 새로운 역할의 생성은 DBA가 담당
GRANT 권한 ON 객체 TO 역할;
- 역할에 권한 추가 : GRANT 문
- 역할에 필요한 권한들을 넣을 때는 GRANT 명령어를 사용
- 객체와 관련된 권한을 역할에 추가하는 작업은 객체의 소유자가 담당
GRANT 역할 TO 사용자;
- 역할 부여 : GRANT 문
- 역할을 사용자에게 부여하는 것은 DBA가 담당
- 역할을 사용자에게 부여하는 것은 DBA가 담당
REVOKE 역할 FROM 사용자;
- 역할 취소 : REVOKE 문
- 사용자에게 부여한 역할의 취소는 DBA가 담당
- 사용자에게 부여한 역할의 취소는 DBA가 담당
DROP ROLE 역할;
- 역할 제거 : DROP ROLE 문
- 역할을 제거하면 제거된 역할을 부여받은 모든 사용자에 대해 역할에 속해 있던 권한이 모두 취소됨
- 역할 제거는 DBA가 담당
'데이터베이스' 카테고리의 다른 글
[데이터베이스론] 13장. 데이터과학과 빅데이터 (0) | 2024.06.07 |
---|---|
[데이터베이스론] 12장. 데이터베이스 응용기술 (0) | 2024.06.07 |
[데이터베이스론] 10장. 회복과 병행제어 (0) | 2024.06.07 |
[데이터베이스론] 9장. 정규화 (0) | 2024.06.07 |
[데이터베이스론] 8장. 데이터베이스 설계 (0) | 2024.06.07 |