DB에서느 모든 유저들이 아무짓이나 하도로 허락되지 않는다
특정 유저들은 특정 권한을 가지며 이걸 privilege라고 부른다
이러한 privilege는 Database Administrator (DBAs)들로 부터 부여된다
GRANT
select/insert/update/delete/all
위 내용들이 유저들에게 주어질 수 있는 권한들이다
아래와 같은 문법으로 부여 가능하다
grant update (budget) on department
to faculty;
Select
Relation내 Tuple들을 Read 할 수 있는 권한을 주는 Authorization
Update
Relation내 아무 Tuple을 Update할 수 있도록 하게 해주는 Authorization
-> 그러나 모든 Tuple에게 Update권한을 주며, 특정 Tuple에게만 권한을 줄 수는 없다
Insert
Relation에 Tuple을 삽입 할 수 있게 해주는 Authorization
권한이 주어지지 않은 Attribute들에게는 Default값이나 Null이 주어진다
Delete
Relation내 Tuple을 삭제하게 해주는 Authorization
REVOKE
Revoke는 주어진 Authorization을 다시 회수하는 역할이다
아래와 같은 문법으로 수행 가능하다
revoke <privilege list> # could be all to revoke all authorizaitons
on <relation name or view name>
from <revokee-list>; # if it includes revokee-list all users lose authorizations
만약에 동일한 유저에게
동일한 권한을 2번이상 서로 다른 유저에게 부여 받았고
한개가 취소된다면
말로 이해하기 어려우니 아래 사진을 첨부하면
한개가 Revoke 됐어도
다른 유저가 준 권한은 남아있으니 아직 권한은 유효하다!
ROLES
DB에서 누가 뭘할 수 있는지 관리하기 위한 방법이다
Role을 생성하기 위해서는
create role <name>
이렇게 생성할 수 있고
생성된 role을 가지고는 유저들에게 배정해줄 수 있다
grant <role> to <users>
SET ROLE
현재 활성화 된 role을 취소하면, 새로운 role을 활성화 한다
좀 더 자세하게 영문 설명을 살펴보자
- Disable the Current Role: When you use SET ROLE, the role that is currently active is disabled for the remainder of the session (or until you switch to another role).
- Enable a Specific Role: The command activates the specified role, which means that all operations in the session will be governed by the permissions and privileges of this role.
- Purpose:
- Temporarily assume the permissions of another role.
- Test or work with different privilege levels within the same session.
- Enforce security by limiting what actions are possible in a session
RESET ROLE
활성화 된 role을 취소하면 그 전의 role로 되돌리는 커맨드이다
role은 다른 role들에게 granted될수 있으며
유저는 마찬가지 view에게도 줄 수 있다
Reference
이 권한이 있어야 foreign key를 설정할 수 있는 권한을 준다
왜냐 참조 당하는 attribute에 대해 제약이 생기기 때문이다
grant regerences (dept_name) on department
to Faculty;
'컴퓨터공학 > 데이터베이스 DB' 카테고리의 다른 글
데이터 베이스 정규화 Normalization (2) | 2025.01.01 |
---|---|
데이터 베이스 설계 이론 Design Theory (1) | 2024.12.31 |
데이터베이스 Transaction 트랜잭션 (2) | 2024.12.27 |
데이터베이스 제약조건 Integrity Constraints (3) | 2024.12.26 |
데이터베이스 뷰 View (3) | 2024.12.25 |