# 권한
- grant 문장은 권한을 수여하는 데 사용.
grant <privilege list>
on <relation name or view name>
to <user list>
<user list> :
user-id
public (시스템에서 현재와 앞으로 사용할 모든 사용자)
역할
- 권한 부여자는 지정된 항목에 대한 권한을 이미 보유해야 함.
- 뷰에 대한 권한을 부여한다 해도 릴레이션에 대한 권한이 부여되는 것이 아님.
# 권한 부여
- select : 릴레이션의 투플을 읽는 권한, 릴레이션에 대해서 질의가능.
예) 사용자 U1, U2, U3 에게 릴레이션 instructor에 대한 select 권한 부여
grant select on instructor to U1, U2, U3
- insert : 투플 삽입 가능
- update : 투플 수정 가능
- delete : 투플 삭제 가능
- all privileges : 모든 권한 허용
# 권한 취소
- revoke 문 사용하여 권한 취소
revoke <privilege list>
on <relation name or view name>
from <user list>
예) revoke select on branch from U1, U2, U3
- <privilege-list> 는 모든 권한 취소 가능 (all)
- <revoke-list> 가 public 를 포함하는 경우 명시적으로 부여된 사용자를 제외한 모든 사용 자가 권한 취소됨
- 동일한 권한을 두 번 부여 받은 경우 취소 후 권한 유지
# 역할
- create role instructor;
- 역할에 권한 부여 가능
grant select on takes
to instructor;
- 다른 역할에도 역할 부여 가능
create role student
grant instructor to Amit;
create role dean;
grant instructor to dean;
grant dean to Satoshi;
RBAC – 역할 기반 접근 제어
# 권한의 전달과 취소
- 권한의 전달
grant select on department to Amit with grant option => 보안 수준 떨어짐
- 권한의 취소
revoke select on department from Amit, Satoshi cascade =>연쇄 취소
revoke select on department from Amit, Satoshi restrict => 연쇄 취소 방지
'전공 공부 > 데이터베이스시스템' 카테고리의 다른 글
프로그래머스 MySQL (level 1) (0) | 2021.01.02 |
---|---|
MySQL 실행 예시 (0) | 2021.01.02 |
타입과 도메인 (0) | 2021.01.02 |
단일 릴레이션에서의 제약조건 (0) | 2021.01.02 |
조인 (0) | 2021.01.01 |