T'SPACE

다채로운 에디터들의 이야기

컴퓨터공학/데이터베이스 DB

데이터 베이스 권한 Authorization

Tonny Kang 2024. 12. 28. 08:33
반응형

DB에서느 모든 유저들이 아무짓이나 하도로 허락되지 않는다

 

특정 유저들은 특정 권한을 가지며 이걸 privilege라고 부른다

 

이러한 privilege는 Database Administrator (DBAs)들로 부터 부여된다

 

GRANT


select/insert/update/delete/all

 

위 내용들이 유저들에게 주어질 수 있는 권한들이다

반응형

 

아래와 같은 문법으로 부여 가능하다

grant update (budget) on department
to faculty;
728x90

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;
반응형