本文介紹了高許可權帳號和普通帳號對應的許可權。
簡介
為了保證雲資料庫的安全性,需要對使用者的許可權進行管理和限制。使用者的許可權應該僅限於其需要的操作,而不應該有任何超出許可權範圍的操作。因此,雲資料庫採用了角色型存取控制模型來管理普通使用者的許可權。在這個模型中,不同的使用者被分配不同的角色,每個角色擁有一定的許可權,而使用者則根據其需要的操作被分配到相應的角色中。這種方式可以有效地控制使用者的許可權,保證資料庫的安全性。
目前,資料庫提供了兩種角色供使用者使用:高許可權使用者和普通使用者。
高許可權使用者主要用於管理工作,例如,建立資料庫、授權基本許可權和建立發布訂閱等。
普通使用者是基本角色,用於執行各種商務邏輯操作。
PolarDB利用這種許可權體系來構建資料庫操作類型,實現了存取控制模型,並更有效地保障了雲資料庫的許可權安全。
高許可權使用者擁有如下許可權:
帳號類型 | 許可權 |
高許可權帳號 | 建立資料庫。詳情請參見建立資料庫。 |
建立外掛程式。詳情請參見外掛程式。 | |
建立許可權不高於自身的使用者。詳情請參見建立使用者。 | |
建立和使用事件觸發程序。詳情請參見建立觸發器。 | |
建立、修改類型。詳情請參見建立物件類型。 | |
調用記憶體回收指令。詳情請參見記憶體回收機制 | |
建立、修改外部資料FDW。詳情請參見使用oss_fdw讀寫外部資料文字檔。 | |
修改ROWID使用到的sequence。詳情請參見ALTER SEQUENCE。 | |
建立發布和訂閱。樣本如下: | |
建立系統上下文。樣本如下: | |
使用兩階段事務。樣本如下: | |
發送訊號。樣本如下: | |
查看後台進程狀態。樣本如下: | |
修改對象名稱。樣本如下: |
高許可權使用者和普通使用者都不具有如下許可權:
由於某些許可權對於資料庫有安全風險,因此目前禁止了使用者的下列許可權。
帳號類型 | 許可權 |
高許可權帳號/普通帳號 | 建立檔案夾。 |
修改系統參數。 | |
建立資料表空間。 | |
殺死超級使用者進程。 | |
執行不受信任的語言。 說明 plsql是受信任的語言,除此之外的語言均屬於不受信任的語言,無法執行。 |
使用者組許可權介紹
雲原生資料庫PolarDB PostgreSQL版(相容Oracle)是在PostgreSQL資料庫的基礎上構建的,沿用了PostgreSQL資料庫的某些群組許可權。以下內容將詳細介紹這些群組許可權的繼承機制。這些許可權與上面所述的高許可權使用者所擁有的許可權具有並集的關係,即最終的許可權集合是這兩類許可權的總和。
許可權名稱 | 許可權情況 | 說明 |
pg_read_all_stats & pg_stat_scan_tables | 完全 | 統計資訊相關許可權,完全擁有。 |
pg_signal_backend | 完全 | 向其他進程發送訊號,完全擁有。 |
pg_polar_superuser | 完全 | 高許可權使用者組,包含了一系列高許可權使用者的許可權,完全擁有。 |
pg_polar_replication | 完全 | 提供使用者使用流複製的許可權,完全擁有。 |
pg_monitor | 完全 | 監控許可權,屏蔽了本地檔案的讀寫權限。 |
pg_read_all_data & pg_write_all_data | 受限 | 讀寫任意表的許可權,可讀寫任意使用者表和可讀大部分系統資料表,安全原因屏蔽部分系統資料表。 |
pg_read_all_settings | 受限 | 讀任意參數許可權,可讀許可權範圍內的參數,安全原因屏蔽部分參數。 |
pg_read_server_files & pg_write_server_files | 屏蔽 | 不支援提供讀寫本地檔案的許可權。 |
pg_execute_server_program | 屏蔽 | 不支援提供執行二進位命令的許可權。 |