Greeplum 系列(七) 權限管理


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 # 最大事務

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM