PostgreSQL 中的權限視圖

PostgreSQL 中的權限視圖

PostgreSQL 提供了多個系統視圖來查詢權限信息,雖然不像 Oracle 的 DBA_SYS_PRIVS 那樣集中在一個視圖中,但可以通過組合以下視圖獲取完整的系統權限信息。

一 主要權限相關視圖

Oracle 視圖PostgreSQL 對應視圖描述
DBA_SYS_PRIVSpg_roles + pg_auth_members系統全局權限
ROLE_SYS_PRIVSpg_roles + pg_auth_members角色擁有的系統權限
USER_SYS_PRIVSpg_user + pg_auth_members用戶擁有的系統權限

二 PostgreSQL 核心權限視圖

2.1 pg_roles / pg_user - 角色/用戶基本信息

SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolcanlogin 
FROM pg_roles;-- 或簡化的用戶視圖
SELECT * FROM pg_user;

2.2 pg_auth_members - 角色成員關系

SELECT roleid::regrole AS role, member::regrole AS member, grantor::regrole AS grantor
FROM pg_auth_members;

2.3 自定義查詢 (類似 DBA_SYS_PRIVS)

SELECT r.rolname AS grantee,CASE WHEN r.rolsuper THEN 'SUPERUSER'WHEN r.rolcreaterole THEN 'CREATE ROLE'WHEN r.rolcreatedb THEN 'CREATE DB'WHEN r.rolcanlogin THEN 'LOGIN'ELSE 'OTHER'END AS privilege,'SYSTEM' AS admin_option
FROM pg_roles r
WHERE r.rolsuper OR r.rolcreaterole OR r.rolcreatedb OR r.rolcanlogin;

三 特定權限檢查查詢

3.1 檢查超級用戶權限

SELECT usename FROM pg_user WHERE usesuper;

3.2 檢查創建數據庫權限

SELECT rolname FROM pg_roles WHERE rolcreatedb;

3.3 檢查創建角色權限

SELECT rolname FROM pg_roles WHERE rolcreaterole;

3.4 檢查登錄權限

SELECT rolname FROM pg_roles WHERE rolcanlogin;

四 對象級權限視圖

PostgreSQL 還提供對象級別的權限視圖,類似于 Oracle 的 DBA_TAB_PRIVS

4.1 information_schema.role_table_grants

SELECT * FROM information_schema.role_table_grants;

4.2 information_schema.role_column_grants

SELECT * FROM information_schema.role_column_grants;

4.3 pg_namespace - schema 權限

SELECT nspname, nspowner::regrole FROM pg_namespace;

五 權限管理對比表

功能OraclePostgreSQL
超級用戶DBA_SYS_PRIVS 中的 SYSDBApg_roles.rolsuper
創建角色CREATE ROLE 權限pg_roles.rolcreaterole
創建數據庫CREATE DATABASE 權限pg_roles.rolcreatedb
登錄權限CREATE SESSION 權限pg_roles.rolcanlogin
角色授權GRANT 語句pg_auth_members 視圖

六 實用權限查詢示例

6.1 綜合權限報告

SELECT r.rolname AS role,CASE WHEN r.rolsuper THEN 'YES' ELSE 'NO' END AS superuser,CASE WHEN r.rolcreaterole THEN 'YES' ELSE 'NO' END AS create_role,CASE WHEN r.rolcreatedb THEN 'YES' ELSE 'NO' END AS create_db,CASE WHEN r.rolcanlogin THEN 'YES' ELSE 'NO' END AS can_login,array(SELECT b.rolname FROM pg_auth_members m JOIN pg_roles b ON m.roleid = b.oid WHERE m.member = r.oid) AS member_of
FROM pg_roles r
ORDER BY 1;

6.2 查找具有特定權限的角色

-- 查找可以創建數據庫的角色
SELECT rolname FROM pg_roles WHERE rolcreatedb;-- 查找可以創建其他角色的角色
SELECT rolname FROM pg_roles WHERE rolcreaterole;

PostgreSQL 的權限系統雖然與 Oracle 有所不同,但通過這些系統視圖可以獲取到同等詳細的信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80262.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【防火墻 pfsense】1簡介

(1) pfSense 有以下可能的用途: 邊界防火墻 路由器 交換機 無線路由器 / 無線接入點 (2)邊界防火墻 ->要充當邊界防火墻,pfSense 系統至少需要兩個接口:一個廣域網(WAN&#xff0…

數據庫+Docker+SSH三合一!深度評測HexHub的全棧開發體驗

作為一名技術博主,我最近一直被各種開發工具切換搞得焦頭爛額。數據庫要用Navicat,服務器管理得開Termius,Docker操作還得切到命令行,每天光在不同工具間切換就浪費了大量時間。直到團隊里的一位架構師向我推薦了HexHub這個一體化…

第十天 Shader編程:編寫簡單表面著色器 Addressable資源管理系統 DOTS(面向數據技術棧)入門

前言 作為Unity初學者,在實現復雜場景時經常會遇到性能瓶頸。本文將帶你通過四個關鍵技術的實戰學習,掌握現代Unity開發的核心優化方案: Shader編程 - 編寫表面著色器控制物體渲染Addressable系統 - 實現高效資源管理DOTS技術棧 - 解鎖百萬…

項目自動化測試

一.設計測試用例(細致全面) 二.先引入所需要的pom.xml依賴 1.selenium依賴 2.webdrivermanager依賴 3.commons-io依賴 編寫測試用例–按照頁面對用例進行劃分,每個頁面是Java文件,頁面下的所有用例統一管理 三.common包(放入公用包) 類1utils 可以調用driver對象,訪問url …

ap無法上線問題定位(交換機發包沒有剝掉pvid tag)

一中學,新開的40臺appoe交換機核心交換機旁掛ac出口路由的組網,反饋ap無法上線,讓協助解決。 組網如下: 排查過程: 檢查ac的配置,沒有發現問題 發現配置沒有問題,vlan1000配置子接口&#xff…

第十七屆山東省職業院校技能大賽 中職組網絡建設與運維賽項

第十七屆山東省職業院校技能大賽 中職組網絡建設與運維賽項 賽題 B 卷 第十七屆山東省職業院校技能大賽中職組網絡建設與運維賽項 1 賽題說明 一、競賽項目簡介 “網絡建設與運維”競賽共分為以下三個模塊: ? 網絡理論測試; ? 網絡建設與調試&#xf…

關于QT信號、槽、槽函數的講解

也是好久沒有發帖子了,最近博主主要還是在邊學QT邊完成任務,所以進度很慢,但確實在這幾天對于QT自身槽和信號這類特殊的機制有了一定簡單的理解,所以還是想記錄下來,如果有初學者看到帖子對他有一定的幫助,…

YOLOv8 漲點新方案:SlideLoss FocalLoss 優化,小目標檢測效果炸裂!

YOLOv8優化秘籍:用SlideLoss和FocalLoss提升小目標檢測精度(附代碼實戰)?? ?📌 核心問題:YOLOv8在檢測小物體時效果不夠好??? YOLOv8雖然是強大的目標檢測模型,但在處理小物體或類別不平…

基于cubeMX的hal庫STM32實現MQ2煙霧濃度檢測

一、任務目標 使用STM32F103C8T6單片機,使用單片機AD模塊采集MQ2煙霧傳感器的數據,在OLED屏顯示檢測到的AD值、電壓值和濃度值(ppm單位)。 二、實現過程 1、MQ2煙霧傳感器的濃度轉化方法 (1)實驗所用的M…

Android之AI自動化測試--Midscene

文章目錄 前言一、準備工作1.安裝2.準備 API Key3.安裝 adb4.連接設備 二、yaml格式自動化腳本1. 腳本案例2.執行結果 三、文件結構變化android 部分 前言 字節 Web Infra團隊官宣Midscene 從 v0.15 開始支持 Android 自動化測試,本篇文章介紹yaml方式的Android自動…

類的六個默認成員函數

如果一個類中什么成員都沒有,簡稱為空類。 空類中真的什么都沒有嗎?并不是,任何類在什么都不寫時,編譯器會自動生成以下6個默認成員函數。 默認成員函數:用戶沒有顯式實現,編譯器會生成的成員函數稱為默認…

HarmonyOS Grid 網格列表可長按 item 拖動移動位置

方案一 @Component struct WorkCircleCreatePage {// 存儲車控列表的數組@State VehicleDoorArr: IVehicleDoor[] = []// 當前移動的Item索引@State CurrentIndex: number = -1// 拖動時顯示的數據@State MoveItem: IVehicleDoor = { title: , icon: }// 拖動時放大倍數@State…

海量數據筆試題--Top K 高頻詞匯統計

問題描述: 假設你有一個非常大的文本文件(例如,100GB),文件內容是按行存儲的單詞(或其他字符串,如 URL、搜索查詢詞等),單詞之間可能由空格或換行符分隔。由于文件巨大&…

【數據結構】Map與Set結構詳解

數據結構系列五:Map與Set(一) 一、接口的實現 1.方法上 2.成員上 二、Map的內外雙接口結構 1.實現 1.1外部Map接口的實現 1.1.1臨摹整體 1.1.2外部類實現整體 1.2內部Entry接口的實現 1.2.1臨摹內部 1.2.2內部類實現內部 2.關系 3.意義 3.1邏輯內聚 …

Electron使用WebAssembly實現CRC-32 原理校驗

Electron使用WebAssembly實現CRC-32 原理校驗 將C/C語言代碼,經由WebAssembly編譯為庫函數,可以在JS語言環境進行調用。這里介紹在Electron工具環境使用WebAssembly調用CRC-32 原理格式校驗的方式。 CRC-32 原理校驗函數WebAssembly源文件 C語言實現C…

【晶振】晶振的工作原理及其與單片機關系

晶振(晶體振蕩器)是電子設備中常見的元件,其核心功能是提供穩定的時鐘信號,而單片機(MCU)依賴這一信號來同步內部操作。以下是晶振的工作原理及其與單片機關系的詳細說明: 一、晶振的工作原理 壓電效應與諧振 晶振的核心是石英晶體,利用其壓電效應: 當在晶體兩端施加電…

【Oracle專欄】函數中SQL拼接參數 報錯處理

Oracle相關文檔,希望互相學習,共同進步 風123456789~-CSDN博客 1.背景 最近同事反饋了一個很奇怪的問題,即有一個函數,入參是當前年月,主要作用是通過SQL語句將不合規的數據插入到指定表中,插入數據時帶上入參的年月參數。當前問題:單獨測試SQL沒有問題可以執行成功,…

nodejs之Express-介紹、路由

五、Express 1、express 介紹 express 是一個基于 Node.js 平臺的極簡、靈活的 WEB 應用開發框架,官方網址: https://www.expressjs.com.cn/ 簡單來說,express 是一個封裝好的工具包,封裝了很多功能,便于我們開發 WEB 應用(HTTP 服務) (1)基本使用 第一步:初始化項目并…

Unicode和 ASCII碼以及UTF-8編碼的區別和聯系

Unicode、ASCII 和 UTF-8 是計算機編碼領域的關鍵概念,它們既有聯系又有區別。以下是它們的對比分析: 1. ASCII(美國信息交換標準碼) 誕生時間:1967 年(7 位編碼,共 128 字符)。特點…

STM32F103_HAL庫+寄存器學習筆記20 - CAN發送中斷+ringbuffer + CAN空閑接收中斷+接收所有CAN報文+ringbuffer

導言 如上所示,在[[STM32F103_HAL庫寄存器學習筆記19 - CAN發送中斷CAN接收中斷接收所有CAN報文ringbuffer數據結構]]的基礎上,為CAN發送端也引入了ringbuffer(環形緩沖區)機制。CAN發送有三個發送郵箱,為什么還另外需…