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

每天用心记录一点点。内容也许不重要,但习惯很重要!

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

获取MySQL系统当前时间详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。