PostgreSQL用户列表
我想获得psql中某个数据库的用户列表-例如“template0”。用户是谁?或者对于“template1”数据库:-那里的用户是谁 已尝试:PostgreSQL用户列表,postgresql,privileges,psql,Postgresql,Privileges,Psql,我想获得psql中某个数据库的用户列表-例如“template0”。用户是谁?或者对于“template1”数据库:-那里的用户是谁 已尝试: \du+ -- no database is Listed not Users Select * from "pg_users"; -- no database is listed 用户实际上并不是“为了数据库”,而是为了集群,并被授予访问数据库的不同权限。要列出用户,\du应该这样做,但您需要连接。差不多 psql template1 -c '\
\du+ -- no database is Listed not Users
Select * from "pg_users"; -- no database is listed
用户实际上并不是“为了数据库”,而是为了集群,并被授予访问数据库的不同权限。要列出用户,\du
应该这样做,但您需要连接。差不多
psql template1 -c '\du'
从命令行提示符下执行。(或连接到数据库时从psql提示符中选择
\du
。您必须了解,在PostgreSQL中,每个数据库集群的用户都是@Michael已经演示了如何获取这些列表
因此,除非您使用和GRANT
明确限制特定数据库的权限,否则群集中的所有用户都可以基本访问群集中的任何数据库
要确定特定的用户是否实际拥有数据库的特定权限(“连接”):
has_database_privilege(user, database, privilege)
更多关于
要确定特定数据库的所有特定权限:
SELECT datname, datacl
FROM pg_database
WHERE datname = 'mydb';
如果没有特定的限制,则datacl
将获得NULL
除此之外,您还可以限制文件中每个数据库和每个用户的访问权限。那是在一个较低的层次上。用户甚至无法连接,如果
pg_hba.conf
不允许,即使数据库本身允许访问。列出角色/用户
从pg_角色中选择rolname 另外请注意,在最新版本上,您可以向db授予/撤销连接权限。