Greeplum 系列(七) 權限管理
一、角色管理
Role 分為用戶(User)和組(Group),用戶有 login 權限,組用來管理用戶,一般不會有 login 權限。初始化 gp 時創建了一個 SUPERUSER ROLE:gpadmin。
表 1 :ALTER ROLE 屬性
屬性 | 說明 |
---|---|
SUPERUSER/NOSUPERUSER | 超級管理員,默認 NOSUPERUSER |
CREATEDB/OCREATEDB | 創建數據庫的權限 |
CREATEROLE/NOCREATEROLE | 創建角色的權限 |
INHERIT/NOINHERIT | 繼承組或父用戶的權限 |
LOGIN/NOLOGIN | 登陸 |
CONNECTION LIMIT connlimit | 限制連接數 |
PASSWORD 'password' | 密碼 |
ENCRYPTED/UNENCRYPTED | 是否加密 |
VALID UNTIL 'timestamp' | 帳戶有效期 |
RESOURCE QUEUE queue_name | 資源隊列 |
DENY {deny_interval/deny_point} | 拒絕某些連接 |
(1) 創建用戶
create role lei with login; # 創建用戶
drop owned by lei; # 刪除用戶
reassign owned by oldUser to newUser; # 將 oldUser 的權限賦予 newUser
alter role lei password '123456'; # 修改密碼
alter role lei valid until 'infinity'; # 永不失效
alter role lei deny day 'Sunday';
alter role lei resource queue queue1;
alter role lei set search_path to sc01,public;
(2) 創建組
# 創建組
create role admin createrole createdb;
# 添加或刪除組成員
grant admin to lei;
revoke admin from lei;
# 賦予合適的權限給組 admin
grant all on table mytable to admin;
grant all on schema myschema to admin;
grant all on database mydb to admin;
# 獲取管理屬性
set role admin;
(3) 對象權限管理
表 2 :對象權限
屬性 | 說明 |
---|---|
Tables、Views、Sequences | SELECT、INSERT、UPDATE、DELETE、RULE、ALL |
External Tables | SELECT、RULE、ALL |
Databases | CONNECT、CREATE |
TEMPORARY、TEMP | ALL |
Functions | EXECUTE |
Procedural Languages | USAGE |
Schemas | CREATE、USAGE |
(4) 基於時間的登錄認證
通過 BETWEEN 和 AND 關鍵字連接兩個日期/時間。
BETWEEN DAY 'Monday' AND DAY 'Tuesday'
BETWEEN DAY 'Monday' TIME '00:00' AND DAY 'Monday' TIME '01:00'
BETWEEN DAY 'Monday' TIME '12:00 AM' AND DAY 'Tuesday' TIME '02:00 AM'
BETWEEN DAY 'Monday' TIME '00:00' AND DAY 'Tuesday' TIME '02:00'
BETWEEN DAY 1 TIME '00:00' AND DAY 2 TIME '02:00'
注意:日期間隔不能跨 Saturday(周六)
Incorrect: DENY BETWEEN DAY 'Saturday' AND DAY 'Sunday'
刪除時間約束,原則:有交集即移出
ALTER ROLE dylan DROP DENY FOR DAY ‘Monday’;
(5) 配置客戶端認證
修改 $MASTER_DATA_DIRECTORY/pg_hba.conf
# local(本地)/host(遠程) dbname role authmethod
local all gpadmin ident
host all gpadmin 127.0.0.1/28 trust
host all gpadmin 192.168.2.110/32 trust
host all gpadmin ::1/128 trust
host all gpadmin fe80::250:56ff:fe2a:552a/128 trust
local replication gpadmin ident
host replication gpadmin samenet trust
host all gpadmin 0.0.0.0/0 md5
host all lei 0.0.0.0/0 md5
local all lei trust
重新加載 pg_hba.conf 使修改生效
gpstop –u
二、配置客戶端($MASTER_DATA_DIRECTORY/postgresql.conf)
postgresql.conf 是 Greenplum 中一個重要的配制文件,下面介紹幾個重要的配制項。
# 限制並發操作的連接的兩個配制
max_connections = 250 # 最大連接數,Segment 最少是 Master 的 3 倍
max_prepared_transactions = 250 # 最大事務
每天用心記錄一點點。內容也許不重要,但習慣很重要!