보안의 개념과 유형
권한을 부여하고 부여한 권한을 취소하는 법
역할의 개념과 필요성
역할을 이용해 권한관리 수행하는 법
권한관리
권한관리 = 접근제어
계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근을 허용하는 것
- 사용자 계정 관리 -> 데이터베이스 관리자가 담당
: 각 사용자는 허용된 권한 내에서만 데이터베이스 사용
: 로그인에 성공한 사용자도 데이터베이스 사용범위, 수행가능작업에 제한
- 데이터베이스의 모든 객체 -> 객체를 생성한 사용자만 사용권한
소유주가 필요에 따라 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 |