02_greenplum角色权限及客户端认证管理
一、gp数据库逻辑结构
在GP中,Database(数据库)、Schema(模式)以及Role(角色)三者之间的关系如下:
1、一个数据库下可以有多个模式,一个模式只属于一个数据库。模式在GP中也被称为Namespace,不同数据库之间的模式没有关系,可以重名;
2、语言在使用之间必须创建,一个语言只属于一个数据库;
3、表、视图、索引、序列、函数、必须属于一个模式;
4、一个文件空间可以有多个表空间,一个表空间只属于一个文件空间,文件空间和角色之间没有关系;
5、表空间和表是一对多的关系,一个模式下的表可以分布在多个表空间下;
6、除了文件空间之外,其他的权限管理都是通过角色来实现,在这些层次结构中,用户必须对上一层有访问权限才能访问该层的内容;
二、什么是角色(role)
一、角色
概念:把用户和组的概念包含在内。一个角色可能是一个数据库用户、一个组或者两者兼具。角色可以拥有数据库对象(如表)并且可以那些对象上的特权分配给其他角色来控制对对象的访问角色可以是其他角色的成员,因此一个成员角色能够继承其父角色的对象特权。
每一个Greenplum数据库系统都包含一组数据库角色(用户和组)。这些角色与服务器所属的操作系统管理的用户和组相互独立,不过,为了便于维护操作系统用户名和Greenplum数据库角色名之间的关系,有很多客户端应用使用当前的操作系统用户名作为默认。
1、Role的组成:由用户(User)和组(Group组成);
2、跟OS的role没有关系;
3、User通过Master节点登录和认证的;
4、Role是定义在GPDB系统级别的;
5、初始化SUPERUSERROLE:gpadmin;
三、角色与权限安全的最佳实践
1、保护系统gpadmin的用户;
2、为每个登录的User分配不同的角色;
3、使用组来管理权限从而实现管理组;
4、控制具备SUPERUSER属性的User数量;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现