본문 바로가기

기초 공부/상식

[postgresql] db 특정계정에 읽기 권한 주기

728x90

안녕하세요 오랜만에 포스팅입니다. 비정기적으로 느낌이 올때만 업로드를 하다보니 오늘의 내용은 pgsqlDB에서 특정 계정에 권한을 줄 때입니다.

 

가끔 이 명령어가 필요한데 그 때마다 검색해서 찾으려니 귀찮아서 직접 포스팅하기로했습니다.

 

 

일단 생성된 db 에 계정을 만들고 그 계정에 특정 테이블에 대한 읽기권한을 주는 명령어는 다음과 같습니다.

 

1. 그냥 계정만들기

CREATE USER 유저명 WITH PASSWORD '비밀번호';

 

2. 슈퍼유저 권한이 들어간 계정만들기

CREATE USER 유저명 PASSWORD '비밀번호' SUPERUSER;

 

3. 특정 유저에게 권한을 주기 (여기서의 권한은 DB를 생성할 수 있는지 등의 좀 큰 권한)

# 유저삭제권한
ALTER USER 유저명 WITH ERATEUSER;

# db생성, 복제권한
ALTER USER 유저명 WITH CREATEDB, REPLICATION;

 

자세한 create role 관련 옵션은 요거를 참고하시면 좋습니다. 우리의 도큐먼트

https://postgresql.kr/docs/11/sql-createrole.html

 

CREATE ROLE

CREATE ROLE CREATE ROLE — 새 데이터베이스 롤 정의 요약 CREATE ROLE 이름 [ [ WITH ] 옵션 [ ... ] ] 옵션 자리에는: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | R

postgresql.kr

 

 

4. 생성된 계정에 특정 테이블 접근 권한 주기

GRANT SELECT ON 테이블이름 TO "user명";

5. 모든테이블에 접근권한 주기

GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO 유저명;

6. 미래에 추가될 테이블에도 자동으로 리드권한 주기

ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO 유저명;

 

 

사실상 그냥 1, 4 번 정도만 알고있으면 될 거 같습니다.

 

그럼 수고하십쇼

 

 

 

 

 

 

 

 

반응형