Greenplum 数据库 之 表空间、数据库、模式及用户 的 创建与授权

  由于刚接触 Greenplum 数据库,并且在网上相关的资料也不太多,都是这里找找那里找找,甚至跑官网去了英文文档了,然后慢慢拼接而成的,公司要用 Greenplum 做数据仓库,因此需要去搭建数仓的模型和用户的关联关系。
  下面将这次搭建数仓使用到的部分相关知识做如下总结:创建表空间必须先创建空间文件,接下来再 创建 数据库、用户 及 模式 等的创建 以及做 授权等相关操作

一、表空间文件的创建
1.切换到 gpadmin 用户模式下,然后创建主节点和从节点的目录
[gpadmin@gp ~]$ chown -R gpadmin:gpadmin /gpdb/

[gpadmin@gp ~]$ mkdir -p /gpdb/gpdata/siling_master
[gpadmin@gp ~]$ mkdir -p /gpdb/gpdata/siling_primary/fs01
[gpadmin@gp ~]$ mkdir -p /gpdb/gpdata/siling_primary/fs02
2.进入主节点目录并执行命令
[gpadmin@gp ~]$ cd /gpdb/gpdata/siling_master/
[gpadmin@gp siling_master]$ gpfilespace

提示填写的信息就是:空间文件名、两个从节点、一个主节点,如图 ->
image.png
3.查看当前目录可看到一个生成的问题件,执行最后一个命令
[gpadmin@gp siling_master]$ gpfilespace --config /gpdb/gpdata/siling_master/gpfilespace_config_20190929_110011

效果图如下证明成功创建空间文件 ->
image.png
二、表空间的创建于查询
1.使用 gpadmin 登录 postgres库
[gpadmin@gp siling_master]$ psql -h 10.92.190.114 -d postgres -U gpadmin
2.表空间的查询与创建
postgres=# select * from pg_filespace;
postgres=# create tablespace tbs_siling filespace siling_fs;
postgres=# select a.spcname,b.fsname from pg_tablespace a,pg_filespace b where spcfsoid=b.oid;

三、基于表空间创建 数据库、模式 以及 用户
1.创建 数据库 与 用户 并 授权
postgres=# create database silingdb tablespace tbs_siling;
postgres=# create user silinguser password 'silinguser';
postgres=# grant all on database silingdb to silinguser;
postgres=# select rolname,oid from pg_roles;
2.设置用户的 表空间 及 授权
postgres=# alter user silinguser set default_tablespace='tbs_siling';
postgres=# grant all on tablespace tbs_siling to silinguser;
3.创建 模式 并 授权
postgres=# create schema siling_mode;
postgres=# grant all on schema siling_mode to silinguser;
四、远程登录
1.进入相关目录修改配置文件
[gpadmin@gp siling_master]$ cd /home/data/master/gpseg-1/

打开如下文件 ->
image.png
2.打开配置文件添加远程登录的 用户名
[gpadmin@gp gpseg-1]$ vim pg_hba.conf
host     all         silinguser      10.92.xxx.xxx/32       trust
3.修改配置文件后执行命令使系统生效
[gpadmin@gp gpseg-1]$ gpstop -u
4.使用客户端进行数据库的远程登录
image.png

  如果能实现到这一步说明我们已经达到了我们的目的,下边还给个额外的授权问题,毕竟数仓中不仅仅是一个用户与一个模式,是由都模式多用户甚至多数据库组成的,因此会涉及到不同用户对不同模式下表的访问

1、给用户访问一个其他模式的权限
commondb=# grant USAGE on schema odm_mode to fdmuser;

2、授予另一个模式中查询表的权限给用户
commondb=# grant select on table odm_mode.employees to fdmuser;

3、如果删除某个用户提示还在依赖表空间,那么先对其撤销对改表空间的操作权限,然后再进行删除:
commondb=# revoke all on tablespace tbs_intf from intfuser;

  好了,此次总结就到这里,希望能帮助到你,谢谢!

你可能感兴趣的:(Greenplum 数据库 之 表空间、数据库、模式及用户 的 创建与授权)