PostgreSQL 用戶和權限管理

建立用戶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'

相關文章
相關標籤/搜索