您好,登錄后才能下訂單哦!
使用角色的概念管理數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。 角色可以是數(shù)據(jù)庫(kù)用戶(hù)和一組數(shù)據(jù)庫(kù)用戶(hù),可擁有數(shù)據(jù)庫(kù)對(duì)象。 - 1.數(shù)據(jù)庫(kù)角色 獨(dú)立于操作系統(tǒng)用戶(hù)。 創(chuàng)建角色: create role name; 刪除角色: drop role name; 確定現(xiàn)有角色: select * from pg_roles; 或者\(yùn)du 列出現(xiàn)有角色。 新安裝的數(shù)據(jù)庫(kù)默認(rèn)有一個(gè)預(yù)定義角色:postgres. 給定客戶(hù)端連接可以連接的數(shù)據(jù)庫(kù)角色集,由客戶(hù)端身份驗(yàn)證設(shè)置決定. - 2. 角色屬性 這些屬性定義其權(quán)限并與客戶(hù)端身份驗(yàn)證系統(tǒng)交互。 登錄權(quán)限(login privilege): 具有l(wèi)ogin屬性的角色才能用作數(shù)據(jù)庫(kù)連接的初始角色名稱(chēng)。create role name login; 超級(jí)用戶(hù)狀態(tài)(superuser status): 數(shù)據(jù)庫(kù)超級(jí)用戶(hù)繞過(guò)所有權(quán)限檢查,但登錄權(quán)限除外. create role name superuser; database creation 授予角色創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限: create role name createdb; role creation 授予角色創(chuàng)建更多角色的權(quán)限: create role name createrole; initiating replication 授予角色啟動(dòng)流復(fù)制的權(quán)限: create role name REPLICATION LOGIN; password 數(shù)據(jù)庫(kù)密碼與操作系統(tǒng)密碼分開(kāi) 使用時(shí)創(chuàng)建角色時(shí)指定密碼。CREATE ROLE name PASSWORD 'string'; 優(yōu)秀做法: 創(chuàng)建具有CREATEDB和CREATEROLE權(quán)限但不是超級(jí)用戶(hù)的角色,然后將此角色用于數(shù)據(jù)庫(kù)和角色的所有日常管理. - 3 角色成員: 可以將權(quán)限授予整個(gè)組或從組中撤銷(xiāo)。 先創(chuàng)建角色: create role name; 組角色存在后,可使用grant和revoke命令添加和刪除成員。 grant grouprole to role1...; revoke grouprole from role1...; 數(shù)據(jù)庫(kù)不允許您設(shè)置循環(huán)成員資格循環(huán)。此外,不允許授予角色成員資格 PUBLIC。 例如: CREATE ROLE joe LOGIN INHERIT; CREATE ROLE admin NOINHERIT; CREATE ROLE wheel NOINHERIT; GRANT admin TO joe; GRANT wheel TO admin; 組角色的成員可以通過(guò)兩種方式使用角色的權(quán)限. 設(shè)置臨時(shí)組角色: set role name; 重置角色: reset role; 刪除組角色: drop role name; 數(shù)據(jù)庫(kù)會(huì)話可以訪問(wèn)組角色的權(quán)限,創(chuàng)建的任何數(shù)據(jù)庫(kù)對(duì)象都被組角色擁有。 成員角色會(huì)繼承組角色的權(quán)限。 用戶(hù)在角色執(zhí)行時(shí)不會(huì)自動(dòng)繼承權(quán)限。PostgreSQL默認(rèn)為所有角色提供 INHERIT屬性.
- 4 刪除角色: 角色可以擁有數(shù)據(jù)庫(kù)對(duì)象并且可以擁有訪問(wèn)其他對(duì)象的權(quán)限。 刪除角色前,先刪除該角色擁有的任何對(duì)象或?qū)⑵渲匦路峙浣o其他所有者; 并且必須撤消授予該角色的任何權(quán)限。 ALTER TABLE bobs_table OWNER TO alice; 或者: REASSIGN OWNED命令可用于將要?jiǎng)h除的角色所擁有的所有對(duì)象的所有權(quán)重新分配給單個(gè)其他角色.必須在包含該角色所擁有的對(duì)象的每個(gè)數(shù)據(jù)庫(kù)中運(yùn)行它. DROP OWNED不會(huì)刪除整個(gè)數(shù)據(jù)庫(kù)或表空間. 刪除已用于擁有對(duì)象的角色的最常用方法是: REASSIGN OWNED BY doomed_role TO successor_role; DROP OWNED BY doomed_role; -- 在集群 DROP ROLE doomed_role; - 5. 默認(rèn)角色: 可訪問(wèn)常用的功能和信息。 角色 允許訪問(wèn) pg_read_all_settings 讀取所有配置變量,僅對(duì)超級(jí)用戶(hù)可見(jiàn)的變量。 pg_read_all_stats 閱讀所有pg_stat_ *視圖并使用各種與統(tǒng)計(jì)相關(guān)的擴(kuò)展,僅對(duì)超級(jí)用戶(hù)可見(jiàn)的擴(kuò)展。 pg_stat_scan_tables 執(zhí)行可能ACCESS SHARE會(huì)對(duì)表進(jìn)行鎖定的監(jiān)視函數(shù)。 pg_signal_backend 將信號(hào)發(fā)送到其他后端(例如:取消查詢(xún),終止)。 pg_monitor 讀取/執(zhí)行各種監(jiān)視視圖和功能。這個(gè)角色的成員pg_read_all_settings,pg_read_all_stats和pg_stat_scan_tables。 管理員監(jiān)控?cái)?shù)據(jù)庫(kù)服務(wù)器的目的配置: pg_monitor,pg_read_all_settings,pg_read_all_stats和pg_stat_scan_tables角色,它們授予一組公共權(quán)限,允許角色讀取通常僅限于超級(jí)用戶(hù)的各種有用的配置設(shè)置,統(tǒng)計(jì)信息和其他系統(tǒng)信息。 管理員可以使用GRANT命令向用戶(hù)授予對(duì)這些角色的訪問(wèn)權(quán)限: GRANT pg_signal_backend TO admin_user;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。