当前位置: 首页 > news >正文

在 PostgreSQL中查看有哪些用户

在 PostgreSQL 中查看用户(在 PostgreSQL 中,用户和角色是同一个概念,ROLE)主要有以下几种方法。

方法一:使用 SQL 命令查询系统目录(推荐)

这是最常用和最灵活的方法。用户信息主要存储在 pg_catalog.pg_roles 系统目录中。

1. 查看所有用户/角色(基本信息)
SELECT rolname AS username, rolsuper AS is_superuser,rolcanlogin AS can_login,rolcreatedb AS can_create_db,rolcreaterole AS can_create_roles,rolreplication AS can_do_replication
FROM pg_roles
ORDER BY rolname;

字段解释:

  • rolname: 用户名。
  • rolsuper: 是否是超级用户(t 表示是,f 表示否)。
  • rolcanlogin: 是否有登录权限(即能否作为客户端连接数据库)。具有登录权限的角色才通常被称为“用户”
  • rolcreatedb: 是否有创建数据库的权限。
  • rolcreaterole: 是否有创建其他角色的权限。
  • rolreplication: 是否有流复制的权限。
2. 仅查看具有登录权限的用户(常用)

我们通常更关心能登录数据库的用户。

SELECT usename AS username, usesuper AS is_superuser,usecreatedb AS can_create_db,usecreaterole AS can_create_roles,usesysid AS user_id
FROM pg_user
ORDER BY usename;

pg_userpg_roles 的一个便于查看的视图,它默认只显示具有登录权限的角色。

3. 查看更详细的信息(包括权限、属性等)
SELECT * FROM pg_roles WHERE rolcanlogin = true ORDER BY rolname;

这会列出所有能登录的角色的所有属性,包括账户有效期、连接限制等。


方法二:使用元命令(在 psql 命令行工具中)

如果你正在使用 PostgreSQL 的交互式命令行工具 psql,可以使用快捷的元命令(以反斜杠 \ 开头的命令)。

1. 列出所有角色/用户
\du

或者更详细的版本:

\du+

\du\df 用于函数,\dt 用于表一样,是用于用户的元命令。

2. 列出所有用户(等同于 SELECT * FROM pg_user;
\dg

在 PostgreSQL 中,\du\dg 是等价的,都可以用来列出角色。


方法三:查看用户属性(如密码有效期、连接限制)

如果你想查看用户更具体的属性配置,可以查询 pg_shadow 系统目录。注意:通常只有超级用户才能查看此视图,因为它包含密码哈希(以md5SCRAM形式加密存储)。

SELECT usename AS username,passwd AS password_hash, -- 敏感信息,通常以md5或SCRAM开头valuntil AS password_expires_at,useconfig AS session_defaults
FROM pg_shadow
WHERE usename = 'your_username'; -- 可以指定要查看的用户名

字段解释:

  • passwd: 加密后的密码。如果是 ********,则表示密码已被加密,无法直接查看明文。
  • valuntil: 密码失效时间(账户有效期)。
  • useconfig: 该用户会话的默认运行时配置(例如,{search_path=myschema, work_mem=16MB})。

示例输出解读

执行 \du 后,你可能会看到如下结果:

                                          List of rolesRole name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------admin     | Superuser, Create role, Create DB, Replication, Bypass RLS | {}app_user  | Create DB                                                  | {readonly_group}bob       | Password valid until 2024-12-31                            | {}readonly  | Cannot login                                               | {}
  • admin: 这是一个超级用户,拥有所有最高权限。
  • app_user: 这是一个普通用户,拥有创建数据库的权限,并且是 readonly_group 角色的成员。
  • bob: 这是一个普通用户,他的密码将在 2024 年底失效。
  • readonly: 这是一个角色Cannot login),不能直接登录,通常被授予其他用户以实现权限分组。

总结

你的需求使用的命令(SQL)使用的元命令(psql 中)
快速查看所有用户及其主要权限SELECT * FROM pg_user;\du\dg
查看所有角色(包括不能登录的)SELECT rolname, rolcanlogin FROM pg_roles;\du
查看更详细的角色属性SELECT * FROM pg_roles;\du+
查看用户的密码和有效期(需超级用户)SELECT * FROM pg_shadow;无直接元命令

对于日常管理,最常用的是 \du 元命令,因为它简单快捷。在脚本或需要程序化处理时,则使用 SELECT ... FROM pg_rolespg_user 的 SQL 查询方式。


文章转载自:

http://FipA7sb1.xLpdm.cn
http://HayKPI46.xLpdm.cn
http://91Eat9lw.xLpdm.cn
http://SmDIbO76.xLpdm.cn
http://SlDNDezH.xLpdm.cn
http://U2I0NVWv.xLpdm.cn
http://CX473jHx.xLpdm.cn
http://Urfv1jc6.xLpdm.cn
http://4lvrxbRu.xLpdm.cn
http://QzrYQWYc.xLpdm.cn
http://4RftXKJ2.xLpdm.cn
http://2hp2Hmwh.xLpdm.cn
http://PEWucqYG.xLpdm.cn
http://CbtsgM1S.xLpdm.cn
http://PaSbzKzL.xLpdm.cn
http://WCxR6wDC.xLpdm.cn
http://pNP6jf32.xLpdm.cn
http://vLsVf1xd.xLpdm.cn
http://1znaBPv1.xLpdm.cn
http://YCt9lV1x.xLpdm.cn
http://huGK6NMg.xLpdm.cn
http://MlX0kBNf.xLpdm.cn
http://7X1c82rL.xLpdm.cn
http://eSHpuHrg.xLpdm.cn
http://QMnyizST.xLpdm.cn
http://OAvXT5Qz.xLpdm.cn
http://Vle6nxcp.xLpdm.cn
http://Pe2LLdoU.xLpdm.cn
http://NGCz8aDa.xLpdm.cn
http://P1HMsxs2.xLpdm.cn
http://www.dtcms.com/a/375062.html

相关文章:

  • 【从零开始的大模型原理与实践教程】--第一章:NLP基础概念
  • 零侵入式对接美团核销接口的技术合作模式
  • Kafka面试精讲 Day 14:集群扩容与数据迁移
  • 解耦-IOCDI
  • 【秋招笔试】2025.09.07蚂蚁算法岗笔试题
  • 10月17日,博睿数据受邀出席GOPS 全球运维大会 2025 · 上海站!
  • 第三方软件测评机构:MongoDB分片集群写入吞吐量与延迟第三方性能测评
  • 【硬件-笔试面试题-76】硬件/电子工程师,笔试面试题(知识点:H桥驱动电路的设计要点)
  • 【56页PPT】数字孪生智能工厂总体结构技术架构MES+ERP建设方案(附下载方式)
  • type(类型别名)和 interface的区别和最佳实践
  • 【直流电机鲁棒控制】matlab实现H无穷大控制的直流电机鲁棒控制研究
  • 4 C 语言数据结构实战:栈和队列完整实现(结构体 + 函数)+ 最小栈解决方案
  • day2 java 基础语法
  • Elasticsearch:智能搜索的 MCP
  • 数据结构与算法-树和二叉树-二叉树的存储结构(Binary Tree)
  • OpenCV 图像金字塔
  • 2025年渗透测试面试题总结-61(题目+回答)
  • 传统项目管理和流程管理区别
  • Blender来设计一个机器宠物-完整的3D建模流程
  • TI-92 Plus计算器:矩阵计算功能介绍
  • 中电金信:AI重构测试体系·智能化时代的软件工程新范式
  • qt QAreaSeries详解
  • 强化学习笔记(二)多臂老虎机(一)
  • 设计模式--装饰器模式
  • 基于go语言的云原生TodoList Demo 项目,验证云原生核心特性
  • Day01 集合 | 1. 两数之和、874. 模拟行走机器人、49. 字母异位词分组
  • 系统架构设计师备考第17天——企业资源规划(ERP) 典型信息系统架构模型
  • 光子芯片驱动的胰腺癌早期检测:基于光学子空间神经网络的高效分割方法(未做完)
  • 清华大学联合项目 论文解读 | MoTo赋能双臂机器人:实现零样本移动操作
  • 鸿蒙的“分布式架构”理念:未来操作系统的关键突破