一、控制台登录
psql -d postgres 登录postgres数据库
二、常用语句
0、版本信息
select version(); 查询当前Greenplum的版本信息
PostgreSQL 9.4.24 (Greenplum Database 6.2.1 build commit:d90ac1a1b983b913b3950430d4d9e47ee8827fd4) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 6.4.0, 64-bit compiled on Dec 16 2019 03:07:22
1、用户/角色
官网说 创建用户是创建角色的别名
两者唯一的区别就是,创建用户默认有login权限,而创建角色默认是nologin权限。
创建具有登录权限、密码是pwd的角色-temp_role
create role temp_role with login password 'pwd';
更改角色的密码
alter role temp_role password 'password';
查询所有的角色信息
select * from pg_roles;
查询所有的用户信息
select * from pg_user;
2、表空间
创建表空间,目录须提前创建
create tablespace temp_data location '/opt/greenplum/location/temp/temp_data' ;
设置表空间temp_data的拥有者是temp_role
alter tablespace temp_data owner to temp_role;
设置角色temp_role的默认表空间是temp_data
alter role temp_role set default_tablespace='temp_data';
查询所有表空间的信息
select oid,spcname,spcowner from pg_tablespace;
查询表空间的location信息
select * from gp_tablespace_location(oid);
3、资源队列
创建资源队列
分配到队列角色所能够执行的查询的数量最高为20
所有从该资源队列中提交的语句的总内存配额最高为1024mb
和资源队列相关查询的优先级为high
create resource queue temp_queue with (active_statements=20,memory_limit='1024mb',priority=high);
设置角色temp_role的资源队列为temp_queue
alter role temp_role resource queue temp_queue;
查询资源队列与角色的关联信息
select * from gp_toolkit.gp_resq_role;
查询资源队列的属性信息
select * from pg_resqueue_attributes;
查询资源队列的当前状态
select * from gp_toolkit.gp_resqueue_status;
4、模式
创建模式
create schema temp_schema;
把temp_schema的所有权限赋予temp_role
grant all on schema temp_schema to temp_role;
如何将temp_schema模式下所有表的权限都赋予temp_role呢?
一条一条来吧,先生成所有的语句,然后复制黏贴一次性执行,或者写个函数循环执行
select 'grant all on table ' || schemaname || '.' || tablename || ' to ${role_name};' from pg_tables where schemaname = '${schema_name}'
5、表
创建表
create table temp_schema.temp_table(id int, gender char(1) ) distributed by (id);
把表的查询权限赋予temp_role
grant select on temp_schema.temp_table to temp_role;
把表的所有权限赋予temp_role
grant all on temp_schema.temp_table to temp_role;
三、Navicat等工具连接GP数据库之前的权限管理
1、find / -name pg_hba.conf 在主节点Master上找到这个文件
2、vi pg_hba.conf 编辑
3、添加 host all all IP/32 md5 加入这一行,记得把IP替换为navicat所在机器的IP
4、重启Greenplum
最后,附上Greenplum的官方文档地址,上面有更详尽的说明,官网永远是最权威的指导!
http://docs.greenplum.org/6-2/ref_guide/sql_commands/sql_ref.html