명령어/DB

[PostgreSQL] \du 롤(계정)과 권한 속성을 본다

jykim23 2026. 7. 30. 22:12
반응형

설치·접속: PostgreSQL 설치와 접속

부제: 서버에 등록된 롤과 슈퍼유저·생성권한 같은 속성을 한눈에 확인한다

psql -d shop -c '\du'         # 전체 롤 목록과 속성
psql -d shop -c '\du app_ro'  # 특정 롤만
psql -d shop -c '\dg'         # \du 와 동일 (group 관점)
                             List of roles
 Role name |                         Attributes
-----------+------------------------------------------------------------
 app_ro    |
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS

\du는 PostgreSQL의 롤(role) 목록을 보여준다. PostgreSQL은 유저와 그룹을 구분하지 않고 모두 "롤"이라는 하나의 개념으로 다루는데, 로그인 가능한 롤이 곧 계정이다. Attributes 칸에 Superuser·Create DB·Replication 같은 권한 속성이 뜨고, 아무 속성도 없는 app_ro처럼 비워진 롤은 별도로 부여된 GRANT 권한만 갖는 제한 계정이다. 누가 슈퍼유저인지, 애플리케이션 전용 읽기 계정이 제대로 만들어졌는지 점검할 때 쓴다. \dg도 같은 결과를 낸다.

이렇게도 쓴다

특정 롤만 패턴으로 좁혀 본다.

psql -d shop -c '\du app*'

 

설명(COMMENT)까지 붙은 상세 목록을 본다. (+ 상세)

psql -d shop -c '\du+'

 

롤이 어떤 테이블에 어떤 권한을 갖는지 확인한다. (조합: \dp)

psql -d shop -c '\dp users'

 

로그인 가능한 계정만 SQL로 골라낸다. (조합: pg_roles)

psql -d shop -c "SELECT rolname FROM pg_roles WHERE rolcanlogin;"

 

읽기 전용 롤을 새로 만들어 바로 확인한다. (조합: CREATE ROLE + \du)

psql -d shop -c "CREATE ROLE report LOGIN PASSWORD 'pw';" -c '\du report'
반응형