配置数据库授权
本文介绍如何通过角色与权限机制,在用户级别限制对数据库数据的访问。
访问权限与角色
Apache Cloudberry 使用角色(role)来管理数据库的访问权限。角色的概念涵盖了传统意义上的“用户”和“用户组”。一个角色既可以是数据库用户,也可以是用户组,甚至可以是两者的结合。角色可以拥有数据库对象(如表),也可以将这些对象的权限授权给其他角色,从而控制访问行为。角色之间可以嵌套,子角色可以继承父角色的对象权限。
每个 Apache Cloudberry 系统都包含一组数据库角色(用户和用户组)。这些角色与服务器操作系统中定义的用户和用户组是相互独立的。不过,为了使用方便,你可以将操作系统用户名与 Apache Cloudberry 的角色名保持一致,因为许多客户端工具会默认使用当前操作系统用户身份登录。
在 Apache Cloudberry 中,用户是通过 Coordinator 实例连接并登录系统的,Coordinator 会验证用户的角色与访问权限。登录成功后,Coordinator 会以该角色的身份向后端的各个 Segment 实例分发 SQL 命令。
角色在系统层面定义,在整个系统中的所有数据库中都有效。
初始化 Apache Cloudberry 系统时,系统会自动创建一个预定义的超级用户角色(也称为系统用户),其名称与执行初始化操作的操作系统用户名相同。通常该角色名为 gpadmin
。如果你想创建更多角色,必须先以这个初始角色连接系统。