PostgreSQL 유저 생성
유저 생성
DATABASE에서 USER는 DATABASE를 사용하는 주체로서 OS를 운영하는 USER와는 분리되어 있습니다.
USER는 소유하고 있는 DATABASE안에 있는 OBJECT의 권한을 변경하고 제어할 수 있습니다.
유저를 생성하기 위해서는 먼저 DATABASE에서 SUPERUSER권한을 가지고 있어야 합니다.
PostgreSQL에 SUPERUSER의 default 계정은 postgres입니다.
유저 조회
postgres=# SELECT * FROM PG_SHADOW;
or
postgres=# \du
\du를 입력하면 USER들이 가지고 있는 ROLE들을 확인 할 수 있습니다.
SUPERUSER인 postgres는 SUPERUSER, CREATE ROLE, CREATE DB, REPLICATION기능을 가지고 있습니다.
SUPERUSER : USER들을 생성하고 권한을 부여해 주는 USER
CREATE ROLE : USER가 새로운 ROLE을 정의하는 기능을 생성
CREATE DB : USER가 DB를 생성하는 권한을 부여하는 기능
REPLICATION : USER가 DB를 실시간으로 복사하는 기능
Synopsis :
CREATE USER username [[ WITH ] option [ … ]]
where option can be:
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’를 입력하고 인증이 필요 없는 경우 옵션을 생략이 가능합니다.
생성 예제
postgres=# create user TEST_USER with password 'test01';
최신 댓글