Finn.ian
article thumbnail

 

 

오늘은 PostgreSQL Database에서 사용자에게 권한을 부여하거나 제거하는 방법에 대해 작성하려 합니다.

PostgreSQL에서 사용자에게 권한을 부여하거나 뺏기 위해서는 GRANT 또는 REVOKE 명령을 사용합니다.

 

우선 사용자에게 권한을 부여하거나 제거하기 전, 사용자계정인 user 계정을 생성하는 방법에 root 계정을 생성하는 방법을 작성하고, 사용자에게 권한을 부여하거나 뺏는 명령어에 대해 작성하고자 합니다.

 

해당 글을 읽기 전, Dark Mode는 풀어주시면 글을 읽기 쉽습니다.

 

01. 계정 생성법 (CREATE)

User 계정 생성하는 방법은 아래 SQL을 활용해주시면 되고, 비밀번호는 '따옴표'를 꼭 작성해주어야 합니다.

CREATE USER username WITH PASSWORD 'password';

 

Root계정 생성하는 방법은 기존 user 계정 생성 뒤에 SUPERUSER만 붙여주면 된다.

CREATE USER username WITH PASSWORD 'password' SUPERUSER;

 


02. 권한 부여 및 제거 (GRANT & REVOKE)

GRANT 명령은 지정된 사용자에게 지정된 객체에 대한 권한을 부여합니다.

GRANT [권한] ON [객체] TO [사용자];

 

REVOKE 명령은 지정된 사용자에게 지정된 객체에 대한 권한을 뺏습니다.

REVOKE [권한] ON [객체] FROM [사용자];

03. 권한 부여 및 뺏기 예시

다음은 PostgreSQL에서 사용자에게 권한을 부여하고 뺏는 예시입니다.

  • 모든 사용자에게 table_name1 테이블에 대한 SELECT 권한부여합니다.
GRANT SELECT ON table_name1 TO PUBLIC ;

 

  • user1 사용자에게 table_name1 테이블에 대한 INSERT, UPDATE, DELETE 권한부여합니다.
GRANT INSERT, UPDATE, DELETE ON table_name1 TO user1 ;

 

  • user2 사용자에게 table_name1 테이블에 대한 SELECT 권한뺏습니다.
REVOKE SELECT ON table_name1 FROM user2 ;

 

  • user3 사용자에게 table_name1 테이블에 대한 모든 권한뺏습니다.
REVOKE ALL ON table_name1 FROM user3 ;

 

만일 이것을 보는 여러분께서 admin권한을 가진 사용자라면 다른 사용자에게 권한 부여하거나 뺏을 경우, 주의해야하는 사항이 몇 가지 있습니다.

 

  1. 권한을 부여하는 경우에는 왜? 이 권한이 필요한지 정당한 이유가 필요합니다.
  2. 사용자에게 권한 관련 변경 사항 공유하기

 

우선, BigData 환경에 있다보니 SELECT 권한만 주었다고 하더라도, 잘못된 Query 작성으로 인해 사이즈가 큰 테이블을 Full Table을 Scan할 경우, 해당 DB Server에 부하를 줄 수 있기 때문입니다. 이와 같은 상황을 방지하고자 권한을 부여하는 경우, 이 권한이 왜 필요한지 설명을 들을 필요가 있습니다. 두번째, 만약 다른 사용자의 권한을 부여하거나 뺏을 경우, 사용자가 현재 작업에 영향을 미치지 않아야 하기 때문에 사용자에게 변경 사항에 대해 알려주어야 합니다.

 

 

이상으로 오늘 주제인 PostgreSQL Database에서 사용자에게 권한을 부여하거나 제거하는 방법에 대해 작성해봤습니다.

 

[참고자료]

더보기
profile

Finn.ian

@Finn_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그