今天就跟大家聊聊有關(guān)PostgreSQL 中怎么實(shí)現(xiàn)用戶和權(quán)限管理,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)沙坪壩,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
創(chuàng)建用戶
CREATE ROLE rolename; CREATE USER username; 注:CREATE USER和CREATE ROLE的區(qū)別在于,CREATE USER指令創(chuàng)建的用戶默認(rèn)是有登錄權(quán)限的,而CREATE ROLE沒有。
創(chuàng)建用戶時設(shè)定用戶權(quán)限屬性
基本語法格式 CREATE ROLE role_name WITH optional_permissions;
示例:在創(chuàng)建用戶時設(shè)定登錄權(quán)限。 CREATE ROLE username WITH LOGIN; 注:可以通過\h CREATE ROLE指令查看全部可設(shè)置的管理權(quán)限
修改用戶權(quán)限屬性
修改權(quán)限的命令格式 ALTER ROLE username WITH attribute_options;
例如:可通過以下方式禁止用戶登錄 ALTER ROLE username WITH NOLOGIN;
設(shè)置訪問權(quán)限
語法格式如下: GRANT permission_type ON table_name TO role_name;
示例: GRANT UPDATE ON demo TO demo_role; --賦予demo_role demo表的update權(quán)限 GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC to demo_role; --賦予demo_role所有表的SELECT權(quán)限 特殊符號:ALL代表所訪問權(quán)限,PUBLIC代表所有用戶 GRANT ALL ON demo TO demo_role; --賦給用戶所有權(quán)限 GRANT SELECT ON demo TO PUBLIC; --將SELECT權(quán)限賦給所有用戶 注:\z或\dp指令顯示用戶訪問權(quán)限。 \h GRANT顯示所有可設(shè)置的訪問權(quán)限
撤銷用戶訪問權(quán)限
語法格式如下: REVOKE permission_type ON table_name FROM user_name; 其中permission_type和table_name含義與GRANT指令中相同。
用戶組 在postgres中用戶實(shí)際上是role,同時組也是role。 包含其他role的role就是組。
創(chuàng)建組 示例: CREATE ROLE temporary_users; GRANT temporary_users TO demo_role; GRANT temporary_users TO test_user;
切換ROLE SET ROLE role_name; --切換到role_name用戶 RESET ROLE; --切換回最初的role
INHERIT權(quán)限:該屬性使組成員擁有組的所有權(quán)限 ALTER ROLE test_user INHERIT;
刪除用戶和組
刪除用戶和組很簡單:
DROP ROLE role_name; DROP ROLE IF EXISTS role_name;
看完上述內(nèi)容,你們對PostgreSQL 中怎么實(shí)現(xiàn)用戶和權(quán)限管理有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。