DATABASE에서 USER는 DATABASE를 사용하는 주체로서 OS를 운영하는 USER와는 분리되어 있습니다. USER는 소유하고 있는 DATABASE안에 있는 OBJECT의 권한을 변경하고 제어할 수 있습니다.
유저를 생성하기 위해서는 먼저 DATABASE에서 SUPERUSER권한을 가지고 있어야 합니다. PostgreSQL에 SUPERUSER의 default 계정은 postgres입니다.
SELECT * FROM PG_SHADOW; 혹은 \du
위의 SELECT * FROM PG_SHADOW를 입력하면 현재 등록되어 있는 USER들을 확인 할 수 있습니다.
\du를 입력하면 USER들이 가지고 있는 ROLE들을 확인 할 수 있습니다. SUPERUSER인 postgres는 SUPERUSER, CREATE ROLE, CREATE DB, REPLICATION기능을 가지고 있습니다.
ROLE | 기능 |
---|---|
SUPERUSER | USER들을 생성하고 권한을 부여해 주는 USER |
CREATE ROLE | USER가 새로운 ROLE을 정의하는 기능을 생성 |
CREATE DB | USER가 DB를 생성하는 권한을 부여하는 기능 |
REPLICATION | USER가 DB를 실시간으로 복사하는 기능 |
CREATE USER username [[ WITH ] option [ ... ]] where option can be:
유저를 생성할 때는 CREATE USER ‘username’을 입력하여 USER를 생성합니다. username 뒤에는 여러 가지 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’를 입력하고 인증이 필요 없는 경우 옵션을 생략이 가능합니다. |
CREATE USER TEST1;
CREATE USER TEST2 PASSWORD 'TEST2';
CREATE USER TEST3 PASSWORD 'TEST3' CREATEDB;
- 강좌 URL : http://www.gurubee.net/lecture/2939
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.