본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] User - 사용자 생성하고 권한 주기

반응형

 

PostgreSQL에서 사용자 생성권한 설정은 다음과 같은 순서로 진행할 수 있습니다. 여기서는 기본 SQL 명령어 기준으로 설명드릴게요.


1. PostgreSQL에 접속

psql -U postgres -d postgres

2. 사용자 생성

CREATE USER 사용자명 WITH PASSWORD '비밀번호';

예:

CREATE USER jhon WITH PASSWORD 'securepass123';

3. 권한 부여

권한은 여러 가지가 있습니다. 주요 항목을 나누어 설명드릴게요.

▶ 데이터베이스 전체에 대한 권한 부여

GRANT ALL PRIVILEGES ON DATABASE dbname TO 사용자명;

예:

GRANT ALL PRIVILEGES ON DATABASE mydb TO john;

▶ 특정 스키마에 대한 권한

GRANT USAGE ON SCHEMA 스키마명 TO 사용자명;
GRANT CREATE ON SCHEMA 스키마명 TO 사용자명;

예:

GRANT USAGE, CREATE ON SCHEMA public TO john;

▶ 특정 테이블에 대한 권한

GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE 테이블명 TO 사용자명;

모든 테이블에 적용하려면:

GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO john;

또는 모든 테이블에 자동으로 적용되도록 설정:

ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO john;

4. 기타 권한

  • 데이터베이스 생성 권한:
  • ALTER USER john CREATEDB;
  • 다른 사용자 생성 권한:
  • ALTER USER john CREATEROLE;
  • 슈퍼유저 권한 (주의):
  • ALTER USER john WITH SUPERUSER;

필요에 따라 사용자에게 어떤 권한을 줄지 정한 뒤, 위 명령어를 조합해서 사용하시면 됩니다.

어떤 권한을 부여하고 싶은 상황이신가요? 예: 읽기 전용, 전체 제어권, 특정 테이블만 등.

반응형