数据库用户与角色
通过数据库用户和角色,可以控制哪些人员、应用程序、BI 工具和数据管道能够连接仓库,以及连接后可以执行哪些操作。创建数据库用户、分配角色,并仅授予各项任务所需的权限,有助于按工作负载隔离访问权限、遵循最小权限原则,并独立管理数据库连接凭据。
数据库用户和角色与组织成员、组织角色相互独立。组织级访问控制请参阅成员。
说明:
- 添加或修改用户和角色,需要
ADMIN权限或全局GRANT权限。- 授予或撤销权限,需要
ADMIN权限或对应范围的GRANT权限。
管理数据库用户
数据库用户的 SQL 身份采用 'username'@'host' 格式,由用户名和主机共同确定。
内置数据库用户
每个仓库包含以下两个内置用户:
| 用户 | 默认角色 | 管理限制 |
|---|---|---|
'admin'@'%' | admin | 可以查看权限和修改密码,不能修改默认角色或权限。 |
'root'@'%' | operator | 可以查看权限,不能从此页面修改密码、角色或权限。 |
不能删除或重命名这些内置用户。
创建数据库用户
-
在顶部导航栏选择目标仓库。
-
在左侧导航栏的更多区域,单击用户与角色,进入用户和角色页面。
-
单击用户页签。
-
单击添加用户,填写以下信息:
- 用户名(必填):数据库用户名。
- 主机(可选):允许该用户连接的来源主机,默认值为
%。主机匹配方式取决于客户端使用的网络路径,详情请参阅主机字段与连接来源。 - 密码(必填):连接仓库时使用的用户密码。
- 属于角色(可选):为用户分配已有的数据库角色;支持多角色的仓库可以选择多个角色。
- 注释(可选):用户的说明或用途;仅在支持注释的仓库中显示。
-
单击确定。
-
创建后,单击用户名打开权限页面,添加全局、数据、集群或工作负载权限。详情请参阅管理数据库用户或角色的权限。
编辑数据库用户
- 登录控制台并选择目标仓库。
- 在左侧导航栏的更多区域,单击用户与角色,进入用户和角色页面。
- 单击用户页签。
- 打开目标用户的操作菜单,单击编辑用户,修改注释或所属角色。
- 单击确定保存。
用户名和主机共同构成 SQL 身份,不能修改。如需使用不同的用户名或主机,应创建新用户,授予所需角色和权限,验证新连接后再删除旧用户。
也可以单独修改密码:
- 打开目标用户的操作菜单,单击修改密码。
- 输入新密码。
- 单击确定保存。
删除数据库用户
- 登录控制台并选择目标仓库。
- 在左侧导航栏的更多区域,单击用户与角色,进入用户和角色页面。
- 单击用户页签。
- 打开目标用户的操作菜单,单击删除用户。
- 核对用户身份并确认删除。
主机字段与连接来源
数据库用户的主机字段控制允许连接的客户端来源。SelectDB Cloud 将该字段与实际连接中观察到的源 IP 地址进行匹配。
数据库观察到的源 IP 取决于客户端的连接路径,公网和私网连接可能呈现不同的源地址。
公网连接
如果公网连接使用的网络负载均衡器(NLB)保留客户端源 IP,SelectDB Cloud 会使用客户端的公网 IP 进行主机匹配。此时,可以在主机字段中配置客户端的公网出口 IP,限制该用户的连接来源。
默认值 % 允许来自任意主机的连接,但连接仍需满足网络访问策略并通过身份验证。
通过 PrivateLink 建立的私网连接
对于通过 PrivateLink 访问 SaaS 仓库的连接,负载均衡器可能不保留原始客户端 IP,而是向数据库呈现 VPC 终端节点的 IP。因此,不能直接假定客户端 IP 就是数据库观察到的源 IP;仅在主机字段中配置原始客户端 IP,可能导致连接无法匹配。
采用这类连接时,可以将主机字段设为 % 或保留默认值,并在网络层通过 VPC 终端节点、安全组等私网访问策略限制来源。具体连接方式和网络配置请参阅连接方式和网络设置。
管理数据库角色
可以为一个数据库用户分配多个角色。用户继承这些角色拥有的权限。
说明:
不能在角色页面分配用户所属的角色。请在创建数据库用户或编辑用户时进行分配。
内置数据库角色
仓库包含以下受保护的内置角色:
| 角色 | 权限说明 |
|---|---|
admin | 具有全局 ADMIN 权限,提供除节点操作以外的数据库管理权限。 |
admin_readonly | 提供数据库资源的只读访问权限。 |
operator | 具有全局 NODE 和 ADMIN 权限,提供包括节点操作在内的数据库管理权限。 |
不能删除这些内置角色。admin 角色的权限不能修改;其他角色的权限操作以权限页面和当前账号的授权能力为准。如果需要不同的权限组合,请创建数据库角色。
创建数据库角色
-
登录控制台并选择目标仓库。
-
在左侧导航栏的更多区域,单击用户与角色,进入用户和角色页面。
-
单击角色页签。
-
单击添加角色,填写以下信息:
- 角色名(必填):数据库角色名称。
- 注释(可选):角色的说明或用途;仅在支持注释的仓库中显示。
-
单击确定。
-
创建后,单击角色名称打开权限页面,添加全局、数据、集群或工作负载权限。详情请参阅管理数据库用户或角色的权限。
删除数据库角色
- 登录控制台并选择目标仓库。
- 在左侧导航栏的更多区域,单击用户与角色,进入用户和角色页面。
- 单击角色页签。
- 在目标角色的操作列单击删除图标。
- 核对角色名称并确认删除。
管理数据库用户或角色的权限
可以直接向数据库用户授予权限,也可以通过为用户分配数据库角色来授予权限。用户的有效权限是直接授予的权限与从角色继承的权限的并集。
- 登录控制台并选择目标仓库。
- 在左侧导航栏的更多区域,单击用户与角色,进入用户和角色页面。
- 单击用户或角色页签。
- 单击目标用户或角色,打开权限页面,按所需范围添加或撤销权限。
说明:
- 需要
ADMIN权限或对应范围的GRANT权限。使用GRANT权限授权时,还必须拥有将要授予的权限。- 内置数据库用户的权限只支持查看;
admin角色的权限不能修改。
| 权限范围 | 控制内容 |
|---|---|
| 全局 | 作用于整个仓库。全局权限包含所有下级对象上的对应权限,可选权限包括 NODE、ADMIN、GRANT、SELECT、LOAD、ALTER、CREATE 和 DROP。 |
| 数据 | 作用于指定层级的数据对象,包括 Catalog、数据库、表、物化视图和视图。对父对象授予的权限包含其下级对象上的对应权限。 |
| 集群 | 通过集群的 USAGE 权限控制连接和使用集群的权限。 |
| 工作负载 | 控制工作负载组的 USAGE 权限。 |