欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在PostgreSQL中查看有哪些用戶的三種方法

 更新時(shí)間:2025年09月10日 10:03:26   作者:IT 小阿姨(數(shù)據(jù)庫)  
本文主要介紹了PostgreSQL查看用戶(角色)的三種方法:SQL查詢系統(tǒng)表(pg_roles/pg_user)、元命令(\du)及pg_shadow視圖,適用于不同場景,如日常管理或腳本處理,并有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下

在 PostgreSQL 中查看用戶(在 PostgreSQL 中,用戶和角色是同一個(gè)概念,ROLE)主要有以下幾種方法。

方法一:使用 SQL 命令查詢系統(tǒng)目錄(推薦)

這是最常用和最靈活的方法。用戶信息主要存儲(chǔ)在 pg_catalog.pg_roles 系統(tǒng)目錄中。

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: 是否是超級(jí)用戶(t 表示是,f 表示否)。
  • rolcanlogin: 是否有登錄權(quán)限(即能否作為客戶端連接數(shù)據(jù)庫)。具有登錄權(quán)限的角色才通常被稱為“用戶”。
  • rolcreatedb: 是否有創(chuàng)建數(shù)據(jù)庫的權(quán)限。
  • rolcreaterole: 是否有創(chuàng)建其他角色的權(quán)限。
  • rolreplication: 是否有流復(fù)制的權(quán)限。

2. 僅查看具有登錄權(quán)限的用戶(常用)

我們通常更關(guān)心能登錄數(shù)據(jù)庫的用戶。

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 的一個(gè)便于查看的視圖,它默認(rèn)只顯示具有登錄權(quán)限的角色。

3. 查看更詳細(xì)的信息(包括權(quán)限、屬性等)

SELECT * FROM pg_roles WHERE rolcanlogin = true ORDER BY rolname;

這會(huì)列出所有能登錄的角色的所有屬性,包括賬戶有效期、連接限制等。

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

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

1. 列出所有角色/用戶

\du

或者更詳細(xì)的版本:

\du+

\du\df 用于函數(shù),\dt 用于表一樣,是用于用戶的元命令。

2. 列出所有用戶(等同于 SELECT * FROM pg_user;)

\dg

在 PostgreSQL 中,\du\dg 是等價(jià)的,都可以用來列出角色。

方法三:查看用戶屬性(如密碼有效期、連接限制)

如果你想查看用戶更具體的屬性配置,可以查詢 pg_shadow 系統(tǒng)目錄。注意:通常只有超級(jí)用戶才能查看此視圖,因?yàn)樗艽a哈希(以md5SCRAM形式加密存儲(chǔ))。

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: 密碼失效時(shí)間(賬戶有效期)。
  • useconfig: 該用戶會(huì)話的默認(rèn)運(yùn)行時(shí)配置(例如,{search_path=myschema, work_mem=16MB})。

示例輸出解讀

執(zhí)行 \du 后,你可能會(huì)看到如下結(jié)果:

                                          List of roles
 Role 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: 這是一個(gè)超級(jí)用戶,擁有所有最高權(quán)限。
  • app_user: 這是一個(gè)普通用戶,擁有創(chuàng)建數(shù)據(jù)庫的權(quán)限,并且是 readonly_group 角色的成員。
  • bob: 這是一個(gè)普通用戶,他的密碼將在 2024 年底失效。
  • readonly: 這是一個(gè)角色Cannot login),不能直接登錄,通常被授予其他用戶以實(shí)現(xiàn)權(quán)限分組。

總結(jié)

你的需求使用的命令(SQL)使用的元命令(psql 中)
快速查看所有用戶及其主要權(quán)限SELECT * FROM pg_user;\du 或 \dg
查看所有角色(包括不能登錄的)SELECT rolname, rolcanlogin FROM pg_roles;\du
查看更詳細(xì)的角色屬性SELECT * FROM pg_roles;\du+
查看用戶的密碼和有效期(需超級(jí)用戶)SELECT * FROM pg_shadow;無直接元命令

對(duì)于日常管理,最常用的是 \du 元命令,因?yàn)樗唵慰旖?。在腳本或需要程序化處理時(shí),則使用 SELECT ... FROM pg_rolespg_user 的 SQL 查詢方式。

到此這篇關(guān)于在PostgreSQL中查看有哪些用戶的三種方法的文章就介紹到這了,更多相關(guān)PostgreSQL查看有哪些用戶內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL對(duì)比Mysql分析

    PostgreSQL對(duì)比Mysql分析

    PostgreSQL功能完備、標(biāo)準(zhǔn)嚴(yán)格,適配復(fù)雜場景與數(shù)據(jù)分析,MySQL簡單高效、高并發(fā)優(yōu)勢明顯,適合讀密集型應(yīng)用,選擇應(yīng)基于業(yè)務(wù)需求與團(tuán)隊(duì)技術(shù)棧,無絕對(duì)優(yōu)劣,對(duì)PostgreSQL對(duì)比Mysql分析相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-07-07
  • PostgreSQL入門簡介

    PostgreSQL入門簡介

    PostgreSQL是一個(gè)免費(fèi)的對(duì)象-關(guān)系型數(shù)據(jù)庫服務(wù)器(ORDBMS),遵循靈活的開源協(xié)議BSD。這篇文章主要介紹了PostgreSQL入門簡介,需要的朋友可以參考下
    2020-12-12
  • PostgreSql 導(dǎo)入導(dǎo)出sql文件格式的表數(shù)據(jù)實(shí)例

    PostgreSql 導(dǎo)入導(dǎo)出sql文件格式的表數(shù)據(jù)實(shí)例

    這篇文章主要介紹了PostgreSql 導(dǎo)入導(dǎo)出sql文件格式的表數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • postgresql 獲取兩個(gè)時(shí)間類型小時(shí)差值案例

    postgresql 獲取兩個(gè)時(shí)間類型小時(shí)差值案例

    這篇文章主要介紹了postgresql 獲取兩個(gè)時(shí)間類型小時(shí)差值案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL數(shù)據(jù)庫管理系統(tǒng)快速入門

    PostgreSQL數(shù)據(jù)庫管理系統(tǒng)快速入門

    這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫快速入門,PostgreSQL是一個(gè)功能強(qiáng)大的開源對(duì)象關(guān)系型數(shù)據(jù)庫系統(tǒng),他使用和擴(kuò)展了SQL語言,并結(jié)合了許多安全存儲(chǔ)和擴(kuò)展最復(fù)雜數(shù)據(jù)工作負(fù)載的功能,需要的朋友可以參考下
    2023-07-07
  • postgresql?json取值慢的原因分析

    postgresql?json取值慢的原因分析

    這篇文章主要介紹了postgresql json取值為何這么慢,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • PostgreSQL時(shí)間線(timeline)和History File的用法

    PostgreSQL時(shí)間線(timeline)和History File的用法

    這篇文章主要介紹了PostgreSQL時(shí)間線(timeline)和History File的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL常用優(yōu)化技巧示例介紹

    PostgreSQL常用優(yōu)化技巧示例介紹

    PostgreSQL的SQL優(yōu)化技巧其實(shí)和大多數(shù)使用CBO優(yōu)化器的數(shù)據(jù)庫類似,因此一些常用的SQL優(yōu)化改寫技巧在PostgreSQL也是能夠使用的。當(dāng)然也會(huì)有一些不同的地方,今天我們來看看一些在PostgreSQL常用的SQL優(yōu)化改寫技巧
    2022-09-09
  • PostgreSQL 默認(rèn)隔離級(jí)別的設(shè)置

    PostgreSQL 默認(rèn)隔離級(jí)別的設(shè)置

    PostgreSQL的默認(rèn)事務(wù)隔離級(jí)別是讀已提交,這是其事務(wù)處理系統(tǒng)的基礎(chǔ)行為模式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • postgreSQL中的row_number() 與distinct用法說明

    postgreSQL中的row_number() 與distinct用法說明

    這篇文章主要介紹了postgreSQL中的row_number() 與distinct用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評(píng)論