使用角色的概念管理數據庫訪問權限。
角色可以是數據庫用戶和一組數據庫用戶,可擁有數據庫對象。
- 1.數據庫角色
獨立于操作系統用戶。
創建角色: create role name;
刪除角色: drop role name;
確定現有角色: select * from pg_roles; 或者\du 列出現有角色。
新安裝的數據庫默認有一個預定義角色:postgres.
給定客戶端連接可以連接的數據庫角色集,由客戶端身份驗證設置決定.
- 2. 角色屬性
這些屬性定義其權限并與客戶端身份驗證系統交互。
登錄權限(login privilege):
具有login屬性的角色才能用作數據庫連接的初始角色名稱。create role name login;
超級用戶狀態(superuser status):
數據庫超級用戶繞過所有權限檢查,但登錄權限除外. create role name superuser;
database creation
授予角色創建數據庫的權限: create role name createdb;
role creation
授予角色創建更多角色的權限: create role name createrole;
initiating replication
授予角色啟動流復制的權限: create role name REPLICATION LOGIN;
password
數據庫密碼與操作系統密碼分開 使用時創建角色時指定密碼。CREATE ROLE name PASSWORD 'string';
優秀做法:
創建具有CREATEDB和CREATEROLE權限但不是超級用戶的角色,然后將此角色用于數據庫和角色的所有日常管理.
- 3 角色成員:
可以將權限授予整個組或從組中撤銷。
先創建角色: create role name;
組角色存在后,可使用grant和revoke命令添加和刪除成員。
grant grouprole to role1...;
revoke grouprole from role1...;
數據庫不允許您設置循環成員資格循環。此外,不允許授予角色成員資格 PUBLIC。
例如:
CREATE ROLE joe LOGIN INHERIT;
CREATE ROLE admin NOINHERIT;
CREATE ROLE wheel NOINHERIT;
GRANT admin TO joe;
GRANT wheel TO admin;
組角色的成員可以通過兩種方式使用角色的權限.
設置臨時組角色: set role name;
重置角色: reset role;
刪除組角色: drop role name;
數據庫會話可以訪問組角色的權限,創建的任何數據庫對象都被組角色擁有。
成員角色會繼承組角色的權限。
用戶在角色執行時不會自動繼承權限。PostgreSQL默認為所有角色提供 INHERIT屬性.

創新互聯公司是一家集網站建設,清河門企業網站建設,清河門品牌網站建設,網站定制,清河門網站建設報價,網絡營銷,網絡優化,
清河門網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。- 4 刪除角色:
角色可以擁有數據庫對象并且可以擁有訪問其他對象的權限。
刪除角色前,先刪除該角色擁有的任何對象或將其重新分配給其他所有者; 并且必須撤消授予該角色的任何權限。
ALTER TABLE bobs_table OWNER TO alice;
或者:
REASSIGN OWNED命令可用于將要刪除的角色所擁有的所有對象的所有權重新分配給單個其他角色.必須在包含該角色所擁有的對象的每個數據庫中運行它.
DROP OWNED不會刪除整個數據庫或表空間.
刪除已用于擁有對象的角色的最常用方法是:
REASSIGN OWNED BY doomed_role TO successor_role;
DROP OWNED BY doomed_role;
-- 在集群
DROP ROLE doomed_role;
- 5. 默認角色:
可訪問常用的功能和信息。
角色 允許訪問
pg_read_all_settings 讀取所有配置變量,僅對超級用戶可見的變量。
pg_read_all_stats 閱讀所有pg_stat_ *視圖并使用各種與統計相關的擴展,僅對超級用戶可見的擴展。
pg_stat_scan_tables 執行可能ACCESS SHARE會對表進行鎖定的監視函數。
pg_signal_backend 將信號發送到其他后端(例如:取消查詢,終止)。
pg_monitor 讀取/執行各種監視視圖和功能。這個角色的成員pg_read_all_settings,pg_read_all_stats和pg_stat_scan_tables。
管理員監控數據庫服務器的目的配置:
pg_monitor,pg_read_all_settings,pg_read_all_stats和pg_stat_scan_tables角色,它們授予一組公共權限,允許角色讀取通常僅限于超級用戶的各種有用的配置設置,統計信息和其他系統信息。
管理員可以使用GRANT命令向用戶授予對這些角色的訪問權限:
GRANT pg_signal_backend TO admin_user;
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前文章:PostgreSQL數據庫角色(五)-創新互聯
網頁地址:http://vcdvsql.cn/article40/dcpsho.html
成都網站建設公司_創新互聯,為您提供自適應網站、品牌網站制作、全網營銷推廣、商城網站、App開發、Google
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯