[PostgreSQL] DDL - user 생성/변경/삭제

2020. 9. 6. 18:00✅ STUDY/SQL

PostgreSQL 설치에 이어,
기본 PostgreSQL DDL 문법(USER 생성, 변경, 삭제)에 대해 알아볼게요!

 

pgAdmin에서 쿼리 작성 툴은 아래처럼 마우스 오른쪽 버튼을 클릭해 'Query Tool'로 실행할 수 있습니다.

 

 


USER 조회

SELECT * FROM PG_SHADOW;

위의 쿼리를 입력하면, 현재 존재하는 USER를 조회할 수 있습니다.
PostgreSQL에 SUPERUSER의 default 계정은 postgres입니다.

USER를 생성하지 않았기 때문에, 기본 USER인 postgres만 나오는 것을 알 수 있습니다.

 


USER 생성

CREATE USER {{NAME}} PASSWORD '{{PW}}' {{OPTION}};

위의 쿼리 문법을 이용해 USER를 생성하고, 권한을 부여해줄 수 있습니다.
{{NAME}} : USER의 이름
{{OPTION}} : 아래 목록에 있는 OPTION명 중 선택해 나열

*OPTION 목록*

OPTION 명 OPTION 설명
SUPERUSER
NOSUPERUSER
해당 USER를 SUPERUSER권한을 주는 것입니다. 따로 지정하지 않을 경우 DEFAULT값으로 NOSUPERUSER가 됩니다.
CREATEDB |
NOCREATEDB
DATABASE를 생성하는 권한을 정의합니다.
CREATEDB를 선택할 경우 USER는 DATABASE를 생성할 권한이 부여됩니다.
NOCREATEDB를 선택할 경우 USER는 DATABASE를 생성할 권한이 거부됩니다.
NOCREATEDB값이 default값으로 설정 되어 있습니다.
CREATEUSER 
NOCREATEUSER
스스로 새로운 유저를 생성하는 권한을 부여하는 것을 정의합니다.
CREATEUSER를 선택할 경우 USER를 생성할 수 있는 권한이 부여됩니다.
NOCREATEUSER를 선택할 경우 USER를 생성할 권한이 거부됩니다.
INHERIT
NOINHERIT
DATABASE의 권한을 다른 구성원들에게 상속하는 역할을 합니다.
따로 정의 되어있지 않을 경우 INHERIT 값이 default값으로 설정 되어 있습니다.
LOGIN
NOLIGIN
USER가 LOGIN을 하는 역할을 부여한다.
CONNECTION LIMIT connlimit 로그인 할 때 동시연결을 지원 하는 기능으로 default값으로 -1(제한없음)로 설정 되어 있습니다.
[ENCRYPTED | UNCRYPTED ]
PASSWORD 'password'
‘password’를 입력하고 인증이 필요 없는 경우 옵션을 생략이 가능합니다.


예제) USER이름이 MJ이고, 비밀번호는 MJMJ2이며 SUPERUSER, CREATEDB 권한을 가지는 USER를 만들어보자.

CREATE USER MJ PASSWORD 'MJMJ2' SUPERUSER CREATEDB;

사용자 조회 sql 쿼리를 이용해 권한이 잘 들어갔는지 확인해보겠습니다.

 


USER 변경

* 권한 변경

ALTER USER {{NAME}} WITH {{OPTION}};


{{NAME}} : USER의 이름
{{OPTION}} : 부여하고싶은 OPTION


예제) MJ의 권한을 CREATEUSER와 REPLICATION으로 바꿔보자.

ALTER USER MJ WITH CREATEUSER REPLICATION;

 

* 비밀번호 변경

ALTER USER {{NAME}} WITH PASSWORD '{{NEW_PW}}';


{{NAME}} : USER의 이름
{{NEW_PW}} : 새로운 비밀번호


예제) MJ의 비밀번호를 MJMJNEW로 바꿔보자.

ALTER USER MJ WITH PASSWORD 'MJMJNEW';

 

* 이름 변경

ALTER USER {{NAME}} RENAME TO {{NEW_NAME}};


{{NAME}} : USER의 이름
{{NEW_NAME}} : 새로운 이름


예제) MJ의 이름을 NEWMJ로 바꿔보자.

ALTER USER MJ RENAME TO NEWMJ;

 


USER 삭제


사용자 삭제는 postgres 계정에서 아래의 쿼리를 이용하면, 삭제가 됩니다.

DROP USER MJ;

 

 

 

 

 

 

 

 


출처 및 참고) www.gurubee.net/lecture/2940

 

USER 수정 및 삭제

ALTER USER 유저를 변경할 때는 ALTER USER ‘username’을 입력하여 USER를 변경합니다. username 뒤에는 여러 가지 option이 추가될 수 있습..

www.gurubee.net