보안과 권한 관리
보안
데이터베이스의 보안은 3가지로 구분할 수 있다.
- 물리적 환경에 대한 보안
- 자연 재해처럼 물리적인 위험으로부터 보호한다.
- 권한 관리를 통한 보안
- 접근이 허용된 사용자만 부여된 권한 내에서 사용하도록 제한해야 한다.
- 운영 관리를 통한 보안
- 실수 등의 이유로 데이터 무결성에 위배되는 행동을 할 수 있으므로 이를 통제해야 한다.
권한 관리
DBMS는 보안을 유지하기 위해 접근 제어
기능을 제공한다. 이때의 접근 제어는 계정이 생성된 사용자가 로그인에 성공했을 때만 데이터베이스에 접근하도록 하는 것이다. DBMS 는 SQL을 이용해 사용 권한을 부여하거나 권한을 취소할 수 있다.
권한 부여
권한 부여를 위해 사용하는 키워드는 GRANT
이다.
이때 부여할 수 있는 권한들은 INSERT
, DELETE
, UPDATE
, SELECT
, REFERENCES
가 존재한다.
- 예시) pjh5365라는 사용자에게 board라는 데이터베이스에 관한 모든 권한을 부여하는 명령
1
| GRANT ALL PRIVILEGES ON board.* TO 'pjh5365'@'localhost';
|
권한 취소
부여한 권한을 취소하기 위해 사용하는 키워드는 REVOKE
이다.
1
| REVOKE 권한 ON 객체 FROM 사용자
|
- 예시) pjh5365라는 사용자에게 board라는 데이터베이스에 관한 모든 권한을 제거하는 명령
1
| REVOKE ALL PRIVILEGES ON board.* FROM 'pjh5365'@'localhost';
|
역할의 부여와 취소
권한을 여러 사용자에게 부여하는 경우가 많은데, 이를 편하게 하기 위해 역할
을 만들어 역할에 권한을 부여하고 그 역할을 사용자에게 부여하는 식으로 전체적인 권한 관리를 할 수 있다.
역할 생성
역할에 권한 부여
사용자에게 역할 부여
역할 취소
역할 삭제