[PostgreSQL] USER 생성

2021. 2. 25. 16:45
728x90

DATABASE에서 USER는 DATABASE를 사용하는 주체로서 OS를 운영하는 USER와는 분리되어 있습니다. USER는 소유하고 있는 DATABASE안에 있는 OBJECT의 권한을 변경하고 제어할 수 있습니다.

 

USER 조회

유저를 생성하기 위해서는 먼저 DATABASE에서 SUPERUSER권한을 가지고 있어야 합니다. PostgreSQL에 SUPERUSER의 default 계정은 postgres입니다.

위의 SELECT * FROM PG_SHADOW를 입력하면 현재 등록되어 있는 USER들을 확인 할 수 있습니다.

  • [그림] psql을 이용한 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

유저를 생성할 때는 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’를 입력하고 인증이 필요 없는 경우 옵션을 생략이 가능합니다.
  • [User 생성 예제]

  • [그림] USER 생성 결과 화면
  • [User 와 password 생성 예제]

     

  • [그림] USER PASSWORD 생성 결과 화면
  • [User 와 DB생성 권한 설정 예제]

     

728x90

'DATABASE > POSTGRESQL' 카테고리의 다른 글

[PostgreSQL] DATABASE 생성  (0) 2021.02.25
[PostgreSQL] USER 수정 및 삭제  (0) 2021.02.25
[PostgreSQL] pgsql 명령어  (0) 2021.02.25
[PostgreSQL] pgAdmin III  (0) 2021.02.25
[PostgreSQL] Confirutaion 구성  (0) 2021.02.25