createuserdropuser命令:

createuser - define a new PostgreSQL user account
dropuser - remove a PostgreSQL user account


是否有列出用户帐户的相应方法?

这两个命令不需要用户调用psql也不了解使用它的详细信息。

#1 楼

使用psql外壳并使用:

\deu[+] [PATTERN],例如: br />
还可以使用MySQL等:

postgres=# \deu+
      List of user mappings
 Server | User name | FDW Options 
--------+-----------+-------------
(0 rows)


评论


从终端:psql -c'\ du'

–弗兰克·亨纳德(Frank Henard)
2015年10月8日17:51

#2 楼

要将输出仅限制为用户名,只需从psql shell或从本地shell /终端执行以下操作即可,即

psql -c "SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;"


如所指出的,快速方法在上一个答案中,显示3列;包括用户名,角色属性列表和角色组成员。

psql -c "\du"


最后,如在后续答案中指出的那样,PostgreSQL命令在通过调用以下命令,\du的背景显示那些“默认”列: br />

最后一部分是从PostgreSQL邮件列表复制的。

#3 楼

有关更简单的答案...

从psql中:

\du


从终端:

psql -c '\du'


它可以帮助我记住d通常用于描述某些事物,而u是用于用户的。

#4 楼

通常由psql \ du完成的SQL解决方案:

SELECT u.usename AS "User name",
  u.usesysid AS "User ID",
  CASE WHEN u.usesuper AND u.usecreatedb THEN CAST('superuser, create
database' AS pg_catalog.text)
       WHEN u.usesuper THEN CAST('superuser' AS pg_catalog.text)
       WHEN u.usecreatedb THEN CAST('create database' AS
pg_catalog.text)
       ELSE CAST('' AS pg_catalog.text)
  END AS "Attributes"
FROM pg_catalog.pg_user u
ORDER BY 1;


参考:https://www.postgresql.org/message-id/1121195544.8208.242.camel@ state.g2switchworks.com