GP 用户权限管理
问题描述:解决用户权限管理,只分配对原数据库表的查询,分配给其固定时间登陆,登陆限定回话时间,和连接数。
解决方案:
一. 创建用户
1 创建用户有登陆权限的用户marketor
CREATE ROLE marketor WITH LOGIN;
给用户marketor分配登陆密码
ALTER ROLE marketor WITH PASSWORD 'password';
给用户marketor 设定有效时间为无限
ALTER ROLE marketor VALID UNTIL 'infinity';
如果要限定其最大连接数,则可以使用
CREATE ROLE marketor WITH CONNECTION LIMIT connlimit
2 使用GRANT SQL命令给指定的marketor授权对象权限:
GRANT SELECT ON mytable TO marketor;
GRANT SELECT ON myindex TO marketor;
分对象限定只能查询
3给marketor用户添加时间约束限制
ALTER ROLE marketor VALID UNTIL DENY
二. 创建针对marketor用户的资源队列:
创建资源队列adhoc限定最大活动语句数为10,这意味着超过10个就会等待,
CREATE RESOURCE QUEUE adhoc WITH (ACTIVE_STATEMENTS=10);
修改资源队列的优先级为LOW
ALTER RESOURCE QUEUE adhoc WITH (PRIORITY=LOW);
分配ROLE(User)到资源队列:
ALTER ROLE marketor RESOURCE QUEUE adhoc;
使用ALTER ROLE命令来分配ROLE到资源队列:
ALTER ROLE name RESOURCE QUEUE queue_name;
CREATE ROLE name WITH LOGIN RESOURCE QUEUE queue_name;