psql에서 특정 데이터베이스에 대한 사용자 목록을 가져 오려면 - 예를 들어 "template0"을 원합니다. 사용자는 누구입니까? 또는 "template1"데이터베이스 : - 사용자는 누구입니까?PostgreSQL 사용자 목록
이 이미 시도 :
\du+ -- no database is Listed not Users
Select * from "pg_users"; -- no database is listed
psql에서 특정 데이터베이스에 대한 사용자 목록을 가져 오려면 - 예를 들어 "template0"을 원합니다. 사용자는 누구입니까? 또는 "template1"데이터베이스 : - 사용자는 누구입니까?PostgreSQL 사용자 목록
이 이미 시도 :
\du+ -- no database is Listed not Users
Select * from "pg_users"; -- no database is listed
사용자가 실제로 아니다 "데이터베이스에 대해"그들은 클러스터있어, 액세스 데이터베이스에 다른 권한이 부여됩니다. \du
사용자를 나열하려면 연결해야하지만 예 :
psql template1 -c '\du'
명령 줄 프롬프트에서해야하는 것과 같습니다. ( 데이터베이스에 연결되어있을 때 프롬프트에서 psql 프롬프트의 \du
).
PostgreSQL 사용자는 데이터베이스 클러스터 당 임을 이해해야합니다. @ 마이클은 이미 그 목록을 얻는 방법을 보여줍니다.
따라서 특정 데이터베이스에 대한 사용 권한을 명시 적으로 REVOKE
및 GRANT
으로 제한하지 않으면 클러스터의 모든 사용자가 클러스터의 모든 데이터베이스에 대한 기본 액세스 권한을 갖습니다.
has_database_privilege(user, database, privilege)
더.
특정 데이터베이스에 대한 모든 특정 권한을 확인하려면 다음SELECT datname, datacl
FROM pg_database
WHERE datname = 'mydb';
특별한 제한이 적용되지 않는 경우가 datacl
에 대한 NULL
를 얻을.
이외에도 pg_hba.conf
파일에서 데이터베이스 및 사용자별로 액세스를 제한 할 수 있습니다. 그게 더 낮은 수준입니다. pg_hba.conf
이 데이터베이스 자체에 액세스를 허용하더라도 사용자가 연결하지 못하면 사용자도 연결할 수 없습니다.
@ Erwin, @ Michael, 도움에 감사드립니다. –
또한 최신 버전에서는 db에 CONNECT 권한을 부여/취소 할 수 있습니다. –
나열하려면 역할/사용자
pg_roles에서선택 rolname;
@ Michael, 도움에 감사드립니다. –
당신을 진심으로 환영합니다. –