PostgreSQL에서 사용자 목록 출력하는 방법
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
psql
에서 PostgreSQL 사용자 및 역할을 나열하려면\du
또는\du+
를 사용하세요.pg_user
에 대한 SQL 쿼리는 사용자 정의 가능한 사용자 세부 정보 보고서를 제공합니다.- 현재 사용자 및 슈퍼 사용자 보기를 통해 액세스 및 권한을 모니터링할 수 있습니다.
사용자 계정 관리는 PostgreSQL 관리의 기본 사항입니다. 액세스 감사, 역할 할당 또는 보안 규정 준수를 보장하는 등 사용자와 해당 속성을 나열하는 방법을 아는 것이 필수적입니다. 이 가이드에서는 psql
명령줄 인터페이스를 사용하고 SQL 쿼리를 실행하여 PostgreSQL에서 사용자 정보를 검색하는 두 가지 주요 방법을 설명합니다.
1. psql
명령줄 인터페이스를 사용하여 사용자 나열하기
psql
도구는 PostgreSQL 서버와 상호 작용하기 위한 기본 제공 메타 명령을 제공합니다.
1단계: PostgreSQL 서버에 연결하기
터미널을 열고 psql
명령을 사용하여 PostgreSQL 서버에 연결합니다.
psql -U postgres
다른 사용자 이름을 사용하는 경우 postgres
를 사용자 이름으로 바꿉니다. 비밀번호를 입력하라는 메시지가 표시됩니다.
2단계: 모든 사용자 나열하기
연결되면 \du
명령을 사용하여 현재 PostgreSQL 데이터베이스 클러스터의 모든 사용자 계정(역할)을 표시합니다.
\du
이 명령은 다음 열이 있는 테이블을 제공합니다.
- 역할 이름: 사용자 또는 역할의 이름입니다.
- 속성:
Superuser
,Create role
,Create DB
등과 같은 역할 속성입니다. - 구성원: 사용자가 구성원인 역할을 나열합니다.
설명을 포함하여 더 자세한 정보를 보려면 \du+
명령을 사용합니다.
\du+
2. SQL 쿼리를 사용하여 사용자 나열하기
또는 시스템 카탈로그를 쿼리하여 사용자 정보를 검색할 수 있습니다.
pg_user
보기 쿼리하기
pg_user
보기는 데이터베이스 사용자에 대한 정보를 제공합니다. 다음 SQL 문을 실행합니다.
SELECT usename AS role_name, CASE WHEN usesuper AND usecreatedb THEN CAST('superuser, create database' AS pg_catalog.text) WHEN usesuper THEN CAST('superuser' AS pg_catalog.text) WHEN usecreatedb THEN CAST('create database' AS pg_catalog.text) ELSE CAST('' AS pg_catalog.text) END role_attributes FROM pg_catalog.pg_user ORDER BY role_name DESC;
이 쿼리는 다음을 반환합니다.
- role_name: 사용자의 이름입니다.
- role_attributes: 사용자의 권한에 대한 텍스트 표현입니다.
추가 팁
-
현재 사용자 보기: 현재 연결된 사용자를 식별하려면 다음을 실행합니다.
SELECT current_user;
또는
SELECT session_user;
-
슈퍼 사용자 나열: 모든 슈퍼 사용자를 나열하려면 다음을 실행합니다.
SELECT usename FROM pg_catalog.pg_user WHERE usesuper = true;
-
활성 연결 확인: 현재 활성 사용자와 해당 세션을 보려면 다음을 수행합니다.
SELECT * FROM pg_catalog.pg_stat_activity WHERE state = 'active';
요약
psql
에서\du
또는\du+
를 사용하여 모든 사용자와 해당 속성을 나열합니다.- 자세한 사용자 정보를 보려면
pg_catalog.pg_user
에 대한 SQL 쿼리를 실행합니다. - 현재 사용자와 활성 연결을 모니터링하려면 추가 쿼리를 활용합니다.
이러한 방법을 사용하면 데이터베이스 관리자는 사용자 계정을 효과적으로 관리하고 PostgreSQL 보안 및 무결성을 유지할 수 있습니다.
FAQs
psql
터미널에서 \du
또는 \du+
명령을 사용합니다.
예, pg_catalog.pg_user
를 쿼리하여 사용자 이름과 해당 역할 속성을 확인합니다.
SQL에서 SELECT current_user;
또는 SELECT session_user;
를 실행합니다.
Leapcell은 백엔드 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 지불합니다. 요청도 없고 요금도 없습니다.
타의 추종을 불허하는 비용 효율성
- 유휴 요금 없이 사용량에 따라 지불합니다.
- 예: 평균 응답 시간 60ms에서 25달러로 694만 개의 요청을 지원합니다.
간소화된 개발자 경험
- 손쉬운 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리할 수 있도록 자동 확장됩니다.
- 운영 오버헤드가 없어 구축에만 집중할 수 있습니다.
설명서에서 자세히 알아보세요!
X에서 팔로우하세요: @LeapcellHQ