PostgreSQL 教程: 列出用户

八月 17, 2023

摘要:在本教程中,您将学习如何使用 PostgreSQL 列出用户的命令来显示 PostgreSQL 数据库服务器中的所有用户。

使用 psql 工具列出用户

首先,使用postgres用户连接到 PostgreSQL 数据库服务器

$ psql -U postgres

它会提示您输入密码:

Password:

输入postgres用户密码后,您将看到以下 PostgreSQL 命令提示符:

postgres=#

其次,使用\du列出当前 PostgreSQL 数据库服务器中的所有用户帐户(或角色):

postgres=# \du 

img

如果你想显示更多信息,可以使用\du+命令:

postgres=#\du+

\du+命令的输出会添加一个名为description的附加列。

使用 SQL 语句列出用户

以下语句通过从pg_catalog.pg_user系统视图中查询数据来返回当前数据库服务器中的所有用户:

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;

img

概括

  • 使用 psql 的\du\du+命令列出当前数据库服务器中的所有用户。

  • 使用SELECT语句从pg_catalog.pg_user系统视图中查询用户信息。