Database
[데이터베이스 개론] Chapter11 - 보안과 권한 관리
로승리
2023. 6. 2. 17:09
보안
- 데이터베이스에 저장된 데이터는 여러 사용자들이 공유해서 사용하는 특성이 있다.
- 데이터베이스에 저장된 데이터를 보호하기 위해 인증, 인가된 사용자만 접근하게 하여 보안을 유지해야 한다.
- 물리적 환경에 대한 보안
- 자연재해처럼 데이터베이스에 물리적으로 손실을 발생시키는 위험으로부터 데이터베이스를 보호해야 한다.
- 권한 관리를 통한 보안
- 접근이 허락된 사용자만 부여된 권한 내에서 데이터베이스를 사용할 수 있도록 한다. 그러려면 계정이 발급된 사용자만 데이터베이스에 접근할 수 있도록 통제하고, 사용자별로 데이터베이스의 사용 범위와 수행 가능한 작업 내용을 제한할 수 있어야 한다.
- 운영관리를 통한 보안
- 접근이 허락된 사용자가 부여된 권한 내에서 데이터베이스를 사용하더라도 실수 등의 이유로 데이터 무결성을 위반할 수 있다. 그러므로 데이터 무결성을 유지하기 위한 올바른 제약조건을 정의하고, 사용자들이 정의된 제약조건을 위반하지 않도록 통제해야 한다.
권한 관리
권한 관리의 개념
- DBMS는 데이터베이스의 보안을 유지하기 위해, 계정이 발급된 사용자가 인증이 성공한 경우에만 접근이 가능하게 하는 접근 제어 기능을 기본으로 제공한다.
- 데이터베이스 사용자 계정 생성, 변경, 제거 등의 관리는 DBMS의 데이터베이스 관리자가 담당한다.
- 데이터베이스 관리자는 계정 관리를 위한 모든 권한을 가지고 있다.
- 데이터베이스 권한 부여는 상세한 수준에서 관리할 수 있고, 각 사용자는 혀용된 권한 내에서만 데이터베이스를 사용할 수 있다.
- 테이블이나 뷰와 같이 데이터베이스의 존재하는 모든 객체는 기본적으로 해당 객체를 생성한 사용자만 사용 권한을 가지게 된다. 그러나 데이터베이스는 여러 사용자가 공유하여 사용할 목적으로 만들어졌기 때문에 다른 사용자에게 적절하게 사용 권한을 부여해야 한다.
권한의 부여
- 객체의 소유자가 다른 사용자에게 객체에 대한 사용 권한을 부여하기 위해 필요한 SQL 명령어는 GRANT다.
- 데이터베이스에 존재하는 모든 유형의 객체에 다른 사용자 권한을 부여할 수 있다.
- GRANT는 기본적으로 테이블을 구성하는 모든 속성에 권한을 부여하지만 UPDATE와 SELECT 테이블을 구성하는 속성들 중 일부 속성만 수정 또는 검색하는 권한을 부여할 수 있다.
- GRANT 문으로 권한을 부여받은 권한은 기본적으로 다른 사용자에게 부여할 수 없지만 WITH GRANT OPTION을 포함하면 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있다.
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
권한의 취소
- GRANT 명령어를 통해 다른 사용자에게 부여된 권한을 취소할 수 있다.
REVOKE 권한 ON 객체 FROM 사용자 CASCADE | RESTRICT;
- 유저 A가 B에게 권한을 부여했고 B가 C에게 권한을 부여한 상태에서 B의 권한을 취소하게 된다면 C의 권한은 어떻게 할 것인지 지정할 수 있다.
- C의 권한도 취소하고 싶다면 CASCADE 명령어를 사용하고, C의 권한을 유지하고 싶다면 RESTRICT 명령어를 사용한다.
역할의 부여와 취소
- 데이터베이스 객체의 소유자는 여러 다른 사용자에게 권한을 부여하는 경우가 많다.
- 각 사용자에게 GRANT 명령어를 이용하여 권한을 부여한다면, 권한 관리가 쉽지않고 번거롭다.
- 동일한 권한을 묶어 다른 사용자에게 부여하는 것을 역할이라 한다.
// 역할 생성
CREATE ROLE 롤이름;
// 생성된 역할에 권한을 지정
GRANT 권한 ON 객체 TO 롤이름;
// 역할을 사용자에게 부여
GRANT 롤이름 TO 사용자
// 사용자에게 부여한 역할을 취소
REVOKE 롤이름 FROM 사용자;
// 역할 삭제
DROP ROLE 롤이름;
Q & A
본 도서의 내용을 정리한 것이 아닌 학습 스터디를 위해 제가 작성한 질답입니다.
사실과 다른 내용이 있다면 지적 부탁드립니다 :)
Q1 : 역할을 사용할때 장점은 무엇인가요?
다른 사용자에게 부여된 권한을 쉽게 관리할 수 있고, 간편합니다.
출처 : 김연희, 데이터베이스 개론 3판, 한빛아카데미(2022)