2019独角兽企业重金招聘Python工程师标准>>>

2. 权限管理

Greenplum 数据库 权限管理 通过 角色(role) 来进行。 Role 概念包括 User 和 Group。 一个 Role 可以是一个 DB 的用户或者一个 Group,或者两者兼备。

Role 可以拥有 DB 对象(tabel),并可以分配改对象的权限给其他 Rolde。

注意:使用psql登陆后显示的提示符是 数据库=# 的是超级管理员,其他用户为 数据库=>

2.1 权限规划

在权限规划上应该区分 DBA,app,guest,超级管理员。

这里将举例说明:

例子中将角色划分为4类(使用下划线分隔):

  • gpdba, gpdba_xxx, ...

普通数据库管理员,执行数据库的创建,删除,表维护等等相关操作。

  • gpapp, gpapp_xxx, ...

普通的应用程序访问,即:通过 ODBC 或 JDBC 来访问的用户都归为此类。

  • gpguest, gpguest_xxx, ...

临时的访问客户,开放给外部(其他公司,外部临时用户)的账户,一般来说只有查看数据表权限,并且应该对访问时段进行控制。

  • gpadmin

超级用户。

2.2 规划实施

-- 更新超级管理员密码
alter role gpadmin with password 'gpadmin123456';-- 创建角色 dba 角色,有增加数据库权限和管理其他角色权限
-- create role gpdba with login;
-- alter role gpdba with password 'gp123456';
-- alter role gpdba with createdb;
-- alter role gpdba with createrole;
create role gpdba with login password 'gp123456' createdb createrole;-- 创建角色 gpapp 角色
-- create role gpapp with login;
-- alter role gpapp with password 'gp123456';
create role gpapp with login password 'gp123456';-- 创建角色 gpguest 角色
#create role gpguest with login;
#alter role gpguest with password 'gp123456';
#alter role gpguest with noinherit;
create role gpguest with login password 'gp123456' noinherit;-- 将 gpapp 给具体的用户
create role gpapp_scott with login password 'gp123456';
create role gpapp_lucy with login password 'gp123456';
grant gpapp to gpapp_scott, gpapp_lucy;
revoke gpapp from gpapp_lucy;
drop role gpapp_lucy;
grant all on database gpdb1 to gpapp;
--grant all on table xxx to gpapp;-- 更细的权限控制通过 grant 和 revoke
create role gpguest_scott with login password 'gp123456';
grant gpguest to gpguest_scott;
grant connect on database gpdb1 to gpguest;
--grant select on table xxx to gpguest;-- 这里还可以添加时间访问限制,在周六日,不可访问,平时在22:00-06:00不可访问
--alter role gpguest deny
--between day 0 time '00:00' and day 0 time '24:00'
--between day 6 time '00:00' and day 6 time '24:00'
--between day 1 time '00:00' and day 1 time '06:00'
--between day 1 time '22:00' and day 1 time '24:00'
--between day 1 time '00:00' and day 2 time '06:00'
--between day 1 time '22:00' and day 2 time '24:00'
--between day 1 time '00:00' and day 3 time '06:00'
--between day 1 time '22:00' and day 3 time '24:00'
--between day 1 time '00:00' and day 4 time '06:00'
--between day 1 time '22:00' and day 4 time '24:00'
--between day 1 time '00:00' and day 5 time '06:00'
--between day 1 time '22:00' and day 5 time '24:00';-- 删除访问时间约束
--alter role gpguest drop deny for day 0;
--alter role gpguest drop deny for day 1;
--alter role gpguest drop deny for day 2;
--alter role gpguest drop deny for day 3;
--alter role gpguest drop deny for day 4;
--alter role gpguest drop deny for day 5;
--alter role gpguest drop deny for day 6;

查看 role

\dg

3. 配置客户端认证

3.1 允许连接到 gpdb

客户端访问认证是通过一个叫做 pg_hba.conf(也是标准的 PostgreSQL 的认证文件)的文件来控制的。

一般只需要修改 主节点(mdw)上 的 pg_hda.conf。修改访问认证基本基本只需如下设置即可:

nano $MASTER_DATA_DIRECTORY/pg_hba.conf
增加
host all all 10.20.17.0/24 md5

需要注意的是,这个 IP 段是 您的 服务器所在的 IP 段。

重新加载 pg_hba.conf 文件:

$ gpstop -u

3.2 并发连接数设置

要使此配置生效,不仅要修改主节点上的 postgresql.conf, 也需要修改每个segment instance (段实例)上的postgresql.conf

在$MASTER_DATA_DIRECTORY/postgresql.conf(包括 Standby):
max_connections=100
max_prepared_transactions=100在所有的 Instance 上 SEGMENT_DATA_DIRECTORY/postgresql.conf:
max_connections=500
max_prepared_transactions=100

segment instance (段实例)上的 max_connections 为主节点上的 5-10 倍,最低也应该在 2-3 倍。

修改步骤:

  • 1 停止 gpdb
$ gpstop 
  • 2 在 Master 上编辑$MASTER_DATA_DIRECTORY/postgresql.conf 文件并修改下面两个参数: max_connections (允许连接的数量+superuser_reserved_connections) max_prepared_transactions (大于或等于max_connections)

  • 3 在每个 Instance 上编辑 SEGMENT_DATA_DIRECTORY/postgresql.conf 文件并修改下面两个参数: max_connections (建议5-10倍Master上的值) max_prepared_transactions (大于或等于Master上的值)

  • 4 重启 GPDB 系统

$ gpstart

转载于:https://my.oschina.net/crooner/blog/916772

Greenplum 权限管理与客户端认证相关推荐

  1. Shiro 权限管理入门之认证与授权

    Shiro 权限管理 什么是权限管理? 什么是身份认证? 什么是授权? Shiro 是什么? Shiro 的核心架构 Shiro 中的认证 认证关键对象 认证流程 认证的开发 自定义 Realm Si ...

  2. java权限管理+授权与认证_权限管理(认证和授权)

    什么是权限管理 基本涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理 ...

  3. SVN服务端客户端安装配置及权限管理

    SVN服务端安装配置: 1. 下载SVN服务端: 下载地址:https://www.visualsvn.com/downloads/ 2. 安装SVN服务端: 打开程序:安装目录\bin\msc程序 ...

  4. 转:权限管理——用户认证和用户授权

    转自: https://blog.csdn.net/xdd19910505/article/details/51926540 因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框 ...

  5. 权限管理——用户认证和用户授权

    因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框架首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的,但框架没有必要这样.框架应该尽可能掩盖复杂的地方,露出一个干净 ...

  6. svn教程----权限管理

    权限管理 1.认证授权机制 在企业开发中会为每位程序员.测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问 ...

  7. EASYUI+MVC4通用权限管理平台

    通用权限案例平台在经过几年的实际项目使用,并取得了不错的用户好评.在平台开发完成后,特抽空总结一下平台知识,请各位在以后的时间里,关注博客的更新. 1.EASYUI+MVC4通用权限管理平台--前言 ...

  8. HDFS 的权限管理不可怕,一篇文章搞懂它

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  9. 权限管理原理知识(一)

    1.1      什么是权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包括用户认证 ...

最新文章

  1. 多重循环练习之九九乘法表
  2. 前端学习(1416):ajax的运行原理
  3. Linux系统json文件打中文,如何在 Linux 终端上漂亮地打印 JSON 文件
  4. 我的考研~~~3-4月份总结
  5. 【限时福利】COACKA免费试听@Days China,干货在这里!
  6. Microsoft Visual Studio 2013产品激活密钥
  7. 一年级课程表(3月14日-3月18日)
  8. Halcon软件使用心得(cont'd)
  9. HDU 1863 (图论基础prim算法)
  10. sharepoint 回收站 java_Sharepoint 2013 回收站知识整理
  11. python读取整个txt文件-python读取一个目录下所有txt里面的内容方法
  12. 打印机服务无法启动(如何解决打印机后台服务没有启动)
  13. 使用 html2canvas 生成图片
  14. 阿里云ecs配置ssh
  15. html导航栏横向展开,横向三级展开的CSS菜单
  16. 博图region用法_西门子1200PLC的OB块用法讲解
  17. 状态机-简单、重要、高可应用性的思想
  18. Google+推出相册管理器Album Organizer
  19. Python爬取国家统计局数据并做简单的数据缺失值处理!
  20. 阿里云ACP级认证考试心得+过关经验 1

热门文章

  1. Problem E: 调用函数,整数逆序输出
  2. AngularJs的理解
  3. 河南多校大一训练赛 C 青蛙的约会
  4. 报错apachectl -t
  5. ant的设置properties
  6. 非常恶俗地分享一首歌曲(童年·葫芦娃)
  7. PostMessage和sendMessage传递问题
  8. 并行、并发,两者的区别
  9. IOS开发基础之截图、图片文字水印
  10. python bind_Python bind-允许同时按下多个键