1. 程式人生 > >Greeplum 系列(七) 權限管理

Greeplum 系列(七) 權限管理

修改 創建組 director sda languages group hba rep DBName

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 lei password ‘123456‘; alter lei valid until ‘infinity‘; # 永不失效 alter lei deny day ‘Sunday‘; alter lei resource queue queue1; alter lei password ‘123456‘; alter 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
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 # 最大事務

每天用心記錄一點點。內容也許不重要,但習慣很重要!

Greeplum 系列(七) 權限管理