본문 바로가기
DB & SQL/데이터베이스 개론

보안과 권한 관리

by k-mozzi 2022. 2. 28.
반응형
Preface

 

이번 장에선 DB의 보안과 권한 관리 방식을 공부했다.

 

권한이 필요한 사용자에게 SQL 문을 이용하여 권한을 부여하거나, 부여했던 권한을 취소하는 것 뿐이므로 어렵고 복잡한 내용은 없었다.

 

다만, 이번 장의 마지막에 잠시 소개된 데이터베이스의 암호화 부분은 정확히 이해할 수 없어 따로 빼서 정리해두었다.


 

1. 보안

 

 

- 데이터베이스 보안의 유형

1) 물리적 환경에 대한 보안: 자연 재해 등으로부터 보호

2) 권한 관리를 통한 보안: 권한이 없는 사용자로부터 보호

3) 운영 관리를 통한 보안: 권한이 있는 사용자로부터 보호

→ 무결성 유지를 위해

 


 

2. 권한 관리

 

 

- DBMS는 접근 제어 기능을 기본으로 제공한다.

 

 

- 사용자 계정 관리는 데이터베이스 관리자가 담당한다.

→ DB 보안 관리를 위해 필요한 모든 권한을 가지고 있다.

 

 

- 모든 객체는 기본적으로 해당 객체를 생성한 사용자만 사용 권한을 가진다.

 

 

 

- GRANT: 객체의 소유자가 다른 사용자에게 객체에 대한 사용 권한을 부여하기 위해 필요한 명령어

GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];

→ 일반적으로 테이블을 대상으로 권한을 부여한다.

 

 

- 다른 사용자에게 부여할 수 있는 주요 권한

→ 여러 권한을 한 번에 동시 부여 할 수 있다.

1) INSERT

2) DELETE

3) UPDATE

4) SELECT

5) REFERENCES etc.

 

 

- REFERENCES: 외래키 제약조건을 정의할 수 있는 권한

→ 해당 조건을 부여받은 사용자는 권한 부여 대상인 테이블의 기본키를 참조하는 외래키를 자신이 생성하는 테이블에 포함할 수 있다.

 

 

- 권한 부여 방법

1) 일부 속성만 권한 부여: 권한과 함께 권한을 부여하고 싶은 속성의 이름을 ( ) 안에 나열

2) 모든 사용자에게 권한을 똑같이 부여: PUBLIC 키워드를 사용하여 GRANT 문을 작성

 

 

- 일반적으로 GRANT 명령어로 부여받은 권한은 다른 사용자에게 부여할 수 없지만, WITH GRANT OPTION을 포함하면 권한을 부여받은 사용자가 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있다.

 

 

- 시스템 권한: DB 관리(데이터 정의어)와 관련된 작업에 대한 권한

→ 데이터베이스 관리자가 부여한다.

 

 

- REVOKE: 다른 사용자에게 부여한 객체의 사용 권한을 취소하기 위해 필요한 명령어

REVOKE 권한 ON 객체 FROM 사용자 CASCADE / RESTRICT;

→ 권한 취소 옵션

1) CASCADE: WITH GRANT OPTION을 통해 권한을 부여받은 사용자가 다른 사용자에게 부여한 권한까지 연쇄적으로 취소

2) RESTRICT: 권한을 취소할 사용자 A가 사용자 C가 부여받은 권한은 취소하지 않도록 제한

 

※ 사용자별로 테이블에 부여된 권한 목록을 작성해두고 관리하는 것이 좋다.

 

 

- 역할: 여러 권한을 그룹으로 묶어놓은 것

 

 

- CREATE ROLE: 역할을 생성하는 데 필요한 명령어

CREATE ROLE 롤이름;

 

 

- 역할에 권한을 넣는 GRANT 문의 기본 형식

GRANT 권한 ON 객체 TO 롤이름;

 

 

- 역할을 사용자에게 부여하는 GRANT 문의 기본 형식

GRANT 롤이름 TO 사용자;

 

 

※ 역할을 부여받은 모든 사용자의 권한도 변경된 역할에 맞게 자동으로 변경된다.

 

 

- 사용자에게 부여된 역할을 취소하는 REVOKE 문의 기본 형식

REVOKE 롤이름 FROM 사용자;

 

 

- DROP ROLE: 역할을 제거하는 데 필요한 명령어

DROP ROLE 롤이름;

 


 

3. 데이터베이스 암호화

 

 

- 암호화: 평문을 암호문으로 바꾸는 것

 

 

- 복호화: 암호문을 평문으로 바꾸는 것

 

 

- 암호화 알고리즘: 암호화를 수행하거나, 복호화를 수행할 때 양쪽이 서로 알고 있어야 할 수단

 

 

- 키: 약속한 규칙

 

 

- 대칭 암호화: 암호화 키를 복호화 키로도 사용하는, 암호화 키와 복호화 키가 같은 방식

 

 

- 비대칭(공개키) 암호화: 권한이 있는 모든 사용자가 공개키와 개인키로 구성된 키 쌍을 가지는 방식

1) 암호화 키는 공개해서 누구든지 평문을 암호문으로 만들 수 있지만, 복호화 알고리즘과 복호화 키는 비밀로 유지한다.

2) 개인키로 암호화된 메시지는 공개키로 복호화되고, 공개키로 암호화된 메시지는 개인키로만 복호화가 가능하다.

 

728x90
반응형

'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글

(Fin) 데이터 과학과 빅데이터  (2) 2022.03.06
데이터베이스 응용 기술  (0) 2022.03.03
회복과 병행 제어  (0) 2022.02.24
정규화  (0) 2022.02.23
데이터베이스 설계  (0) 2022.02.21

댓글