[PostgresQL] Postgresql 강좌 - 1. USER 조회와 생성 수정 삭제
자 그러면 postgresql도 설치했으니 이번에는 psql을 이용해 유저를 생성하고 수정하고 삭제 조회 하는 기능을
알아보도록 하겠습니다.
DATABASE에서 USER는 DATABASE를 사용하는 주체로 OS를 운영하는 USER와 분리되어 있습니다.
USER는 소유하고 있는 DATABASE안에 OBJECT(오브젝트)의 권한을 변경하고 제어할 수 있습니다.
1.USER 조회하기
유저를 생성하기 위해서 처음으로 해야할 과정은 먼저 DATABASE안에 SUPERUSER(관리자)권한을 가지고 있어야 합니다.
PostgreSQL에 SUPERUSER와 default 계정은 postgres 입니다.
SELECT * FROM PG_SHADOW;
또는
\du
위 SELECT * FROM PG_SHADOW; 명령어는 현재 등록된 USER들을 확인할 수 있는 명령어 입니다.
\du 명령어를 입력하면 현재 USER이 가지고 있는 ROLE들에 관해 확인해볼 수 있습니다.
posgres는 SUPERUSER, CREATE ROLE, CREATE DB, REPLICATION 기능을 가지고 있습니다.
ROLE | 기능 |
SUPERUSER | USER들을 생성하고 권한을 부여해주는 USER |
CREATE ROLE | USER가 새로운 ROLE을 정의하는 기능 생성 |
CREATE DB | USER가 DB를 생성하는 권한을 부여하는 기능 |
REPLICATION | USER가 DB를 실시간으로 복사하는 기능 |
2. CREATE USER
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를 생성할 권한이 거부 됩니다. NOSUPERUSER를 선택할 경우 USER를 선택할 권한이 거부됩니다. |
CREATEUSER | NOCREATEUSER |
스스로 새로운 유저를 생성할 권한을 부여하는 것을 정의합니다. CREATEUSER를 선택할 경우 USER를 생성할 권한이 부여됩니다. NOCREATEUSER를 선택할 경우 USER를 생성할 권한이 거부됩니다. |
INHERIT | NOINHERIT |
DATABASE의 권한을 다른 구성원에게 상속하는 역할을 합니다. 따로 정의되 있지 않을 경우 INHERIT 값이 default값으로 설정 되어 있습니다. |
CONNECTION LIMIT connlimit | 로그인 할 때 동시연결을 하는 기능으로 default 값으로 -1(제한없음)으로 설정되어 있습니다. |
[ENCRYPTED | UNCRYPTED] PASSWORD 'password' |
'password'를 입력하고 인증이 필요 없는 경우 옵션을 생략할 수 있습니다. |
[USER 생성 예제]
CREATE USER TEST4;
[USER와 password 생성 예제]
CREATE USER TEST3 PASSWORD 'TEST3';
3.ALTER USER
유저를 변경할떄는 ALTER USER 'username'을 입력해 USER를 변경해줍니다. username 뒤에는 여러가지 option이 추가될 수 있습니다.
ALTER USER name [ [ WITH ] option [ ... ] ]
option은 CREATE USER option과 같습니다.
[user의 이름 변경]
ALTER USER TEST3 RENAME TO TEST5;
[user의 비밀번호 변경]
ALTER USER TEST2 WITH PASSWORD 'test22';
[user 생성, 권한 변경]
ALTER USER TEST1 WITH CREATEROLE;
4.DROP USER
USER를 삭제할 때는 DROP USER 'name'을 입력해 USER를 삭제합니다.
DROP USER name
DROP USER TEST4;
참고자료