建立用戶post
CREATE ROLE rolename; CREATE USER username; 注:CREATE USER和CREATE ROLE的區別在於,CREATE USER指令建立的用戶默認是有登陸權限的,而CREATE ROLE沒有。
建立用戶時設定用戶權限屬性code
基本語法格式 CREATE ROLE role_name WITH optional_permissions;io
示例:在建立用戶時設定登陸權限。 CREATE ROLE username WITH LOGIN; 注:能夠經過\h CREATE ROLE指令查看所有可設置的管理權限
修改用戶權限屬性table
修改權限的命令格式 ALTER ROLE username WITH attribute_options;test
例如:可經過如下方式禁止用戶登陸 ALTER ROLE username WITH NOLOGIN;
設置訪問權限登錄
語法格式以下: GRANT permission_type ON table_name TO role_name;sed
示例: GRANT UPDATE ON demo TO demo_role; --賦予demo_role demo表的update權限 GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC to demo_role; --賦予demo_role全部表的SELECT權限 特殊符號:ALL表明所訪問權限,PUBLIC表明全部用戶 GRANT ALL ON demo TO demo_role; --賦給用戶全部權限 GRANT SELECT ON demo TO PUBLIC; --將SELECT權限賦給全部用戶 注:\z或\dp指令顯示用戶訪問權限。 \h GRANT顯示全部可設置的訪問權限
撤銷用戶訪問權限date
語法格式以下: REVOKE permission_type ON table_name FROM user_name; 其中permission_type和table_name含義與GRANT指令中相同。權限
用戶組 在postgres中用戶其實是role,同時組也是role。 包含其餘role的role就是組。語法
建立組 示例: 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權限:該屬性使組成員擁有組的全部權限 ALTER ROLE test_user INHERIT;
刪除用戶和組
刪除用戶和組很簡單:
DROP ROLE role_name; DROP ROLE IF EXISTS role_name;
實際應用示例: 一、create user zabbix ; 二、create database zabbix owner zabbix; 三、alter user zabbix password zabbix; 四、grant all on DATABASE zabbix to zabbix; 五、COMMENT ON DATABASE zabbix is 'used for zabbix data store'