School/데이터베이스

보안과 권한 관리

응엉잉 2022. 6. 13. 22:20

보안의 개념과 유형

권한을 부여하고 부여한 권한을 취소하는 법

역할의 개념과 필요성

역할을 이용해 권한관리 수행하는 법

 

권한관리

권한관리 = 접근제어

계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근을 허용하는 것

- 사용자 계정 관리 -> 데이터베이스 관리자가 담당

: 각 사용자는 허용된 권한 내에서만 데이터베이스 사용

: 로그인에 성공한 사용자도 데이터베이스 사용범위, 수행가능작업에 제한

- 데이터베이스의 모든 객체 -> 객체를 생성한 사용자만 사용권한

소유주가 필요에 따라 SQL 문 이용해 다른 사용자에게 사용 권한을 부여하거나 취소 가능함

 

권한 관리를 통한 보안

1. GRANT 문

1-1. 객체 권한 부여

객체의 소유자가 다른 사용자에게 객체 사용권한 부여

GRANT 1)권한 ON 객체 TO 2) 사용자 3) [WITH GRANT OPTION]

 

1) 부여 가능한 권한

INSERT(삽입), DELETE(삭제), UPDATE(값 수정), SELECT(검색), REFERENCES(외래키 제약조건 정의)

  - UPDATE, SELECT : 테이블의 일부 속성에 대한 권한 부여 가능

여러 권한을 한번에 부여하는것도 가능

GRANT 문으로 받은 권한 -> 다른 사용자에게 부여 불가능

 

2)

PUBLIC : 모든 사용자에게 동일하게 권한을 부여하고싶은 경우 사용자를 특정하지 않고 PUBLIC 키워드

 

3) WITH GRANT OPTION

사용자가 자신이 부여받은 권한을 다른 사용자에게도 부여할 수 있도록 함

( 다른사람에게도 권한부여 가능 ? 기본적으로는 불가능하지만 WITH GRANT OPTION 과 함께면 가능)

 

GRANT SELECT ON 고객 TO HONG ;

 

GRANT INSERT,DELETE ON 고객 TO PUBLIC;

 

GRANT UPDATE(등급, 적립금) ON 고객 TO PARK;

 

GRANT SELECT ON 고객 TO LEE WITH GRANT OPTION;

 

1-2. 시스템 권한 부여 : GRANT

시스템권한 = 데이터베이스 관리와 관련된 작업에 대한 권한

EX) CREATE TABEL, CREATE VIEW 등 데이터 정의어와 관련된 권한들

시스템 권한은 데이터베이스 관리자가 부여

시스템권한 부여시 객체 지정 불필요

 

GRANT CREATE TABLE TO SONG;

 

GRANT CREATE VIEW TO SHIN;

 

1-3. 객체 권한 취소 ; REVOKE

객체 소유자가 다른 사용자에게 부여한 객체 권한 취소

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

* 사용자 A가 사용자 B에게 권한을 부여하고, 사용자 B는 사용자 C에게 같은 권한을 부여한 경우

- CASCADE : 권한을 취소할 사용자 A가 B 뿐만 아니라 C가 부여받은 권한도 연쇄적으로 함께 취소

- RESTRICT : 권한을 취소할 사용자 A가 사용자 C가 부여받은 권한은 취소 불가능

 

REVOKE SELECT ON 고객 FROM HONG CASCADE;

 

1-4. 시스템 권한 취소 : REVOKE 

데이터베이스 관리자가 다른 사용자에게 부여한 시스템 권한을 취소

특정 객체에 대한 취소가 아니므로 객체 지정 불필요

 

REVOKE CREATE TAVLE FROM HONG

 

권한 목록

권한 부여에 관한 내용을 기록한 것

사용자들에게 어떤 권한을 부여했는지, WITH GRANT OPTION 포함하여 권한 부여했는지 

 

역할

여러 권한을 그룹으로 묶어놓은 것

사용자들에게 동일한 권한을 부여하고 취소하는 작업을 편리하게 수행할 수 있음

사용자에게 적용돈 권한을 수정할 때 역할에 적용된 권한을 수정하면 해당 역할을 부여받은 모든 사용자에게 일괄 적용 -> 관리가 쉬워짐

 

역할생성

새로운 역할의 생성은 데이터베이스 관리자가 담당

CREATE ROLE 롤이름;

 

역할에 권한 추가

객체와 관련된 권한을 역할에 추가하는 작업은 객체의 소유주가 담당

GRANT 권한 ON 객체 TO 롤이름;

 

역할부여

역할을 사용자에게 부여하는 것은 데이터베이스 관리자가 담당

GRANT 롤이름 TO 사용자;

 

역할취소

사용자에게 부여한 역할의 취소는 데이터베이스 관리자가 담당

REVOKE 롤이름 FROM 사용자;

 

역할제거

역할제거시 해당 역할을 부여받았던 사용자들의 권한이 모두 취소

데이터베이스 관리자가 담당

DROP ROLE 롤이름;

 

 

 

'School > 데이터베이스' 카테고리의 다른 글

회복과 병행제어  (0) 2022.06.13
정규화  (0) 2022.06.11
데이터베이스 언어 SQL_2  (0) 2022.06.11
SQL-SELECT 문  (0) 2022.04.18
관계 데이터 연산  (0) 2022.04.17