Menu

메모용 개발 블로그

전체보기 > 데이터베이스 > Postgresql >

[Postgresql] 계정 생성과 권한

2021-12-28 01:08:21

서론

계정 생성이나 권한 설정을 위해서는 해당하는 권한이 있는 계정에서 진행을 하여야 한다.

처음 DB를 사용한다면 우선 관리자 계정으로 접속을 하여야 하며, 이에 대한 것은 설치에 대한 글 중간에서 확인할 수 있다.

설치기 보러 가기

1. 계정 생성

CREATE USER 계정명 WITH PASSWORD 비밀번호;

2. 계정 조회

\du

3. 권한 추가

ALTER ROLE 계정명 권한 [권한2 권한3 ...];

권한 종류

  • SUPERUSER : DB의 전체 권한 (명시적 거부 : NOSUPERUSER)
  • CREATEDB : 새 DB 생성 (명시적 거부 : NOCREATEDB)
  • CREATEROLE : 새로운 ROLE 생성 권한 (명시적 거부 : NOCREATEROLE)
  • INHERIT : DB의 권한을 다른 구성원에게 상속 가능한지 여부(명시적 거부 : NOINHERIT)
  • LOGIN : 해당 계정의 로그인 허용 여부 (명시적 거부 : NOLOGIN)
  • REPLICATION : 복제 가능 여부 (명시적 거부 : NOREPLICATION)
  • BYPASSRLS : 해당 계정의 Row-Level-Security 무시 여부 (명시적 거부 : NOBYPASSRLS)
  • CONNECTION LIMIT : 해당 계정으로 접속가능한 최대 동시접속 수 (기본값 : -1)
  • PASSWORD : 비밀번호
  • VALID UNTIL {timestamp} : 암호의 유효일시
  • ROLE {role_name} : 해당 계정에 다른 역할을 부여

해당 권한들에서 명시적 거부라 적힌 것은 지정하지 않아도 해당하는 권한을 가진것과 같다. 명시적으로 불가능하도록 지정하는 의미.

단, LOGIN, NOLOGIN의 경우 CREATE USER를 통해 생성한 계정의 경우 LOGIN이 기본이다.

4. 테이블 권한

GRANT [권한] ON 테이블명 To 역할명

권한의 목록

  • SELECT : 조회
  • INSERT : 삽입
  • UPDATE : 수정
  • DELETE : 삭제
  • TRUNCATE : 테이블 데이터 비움
  • REFERENCES : 외래키 제약 조건 설정 가능
  • TRIGGER : 테이블 트리거 생성 가능
  • CREATE : 스키마 생성 가능
  • CONNECT : 지정 데이터베이스 연결 가능
  • EXECUTE : 프로시저, 함수 사용 가능
  • ALL PRIVILEGES : 모두 허용