您可以使用Hologres管理控制台的用户管理模块,新增或删除用户,以及为用户授权。方便您以可视化方式更细致的管理实例内的用户。
购买实例的阿里云账号默认为当前实例的超级管理员Superuser,拥有实例的所有权限。在未添加其他用户之前,用户管理页面只显示当前阿里云账号的相关信息。用户管理界面显示项如下表所示。
显示项 | 描述 |
成员 | 当前实例中的用户名,包括阿里云账号、RAM用户和自定义账号。 |
云账号 | 当前实例中用户的阿里云账号ID。 示例如下:
|
账号类型 | 当前实例的用户的账号类型。
|
角色类型 | 当前实例的用户拥有的权限类型。
|
操作 | 您可以单击目标成员操作列的删除,将该用户从实例内删除,删除后用户将没有实例的任何访问权限。 |
使用限制
自定义账号默认不能查询MaxCompute外表,如需查询,请配置USER MAPPING,具体配置方式请参见常见问题。
新增用户
您可以在用户管理页面,使用可视化方式为实例新增用户。
在用户管理页面选择目标实例名称,在页面右上角单击新增用户。
在新增用户对话框,选择添加当前阿里云账号下已有的RAM用户,并选择实例超级管理员(superuser)或普通用户用户类型。
说明如果当前阿里云账号没有RAM用户,您需要创建一个RAM用户,详情请参见RAM用户权限授权快速入门。
Hologres支持使用阿里云账号和被设为实例超级管理员(Superuser)的RAM账号新增用户,其中RAM账号需要被授予AliyunRAMReadOnlyAccess权限,详情请参见授予RAM用户权限。
实例超级管理员(Superuser):拥有实例的所有权限,如果子账号被授予为Superuser,则无需再额外进行其他授权。
普通用户:仅被创建至实例中,没有实例内任何对象(例如数据库、Schema和表等)的查看及操作权限,需要授予相应的权限,才可以查看或操作实例。
推荐您前往DB管理页面,使用可视化方式进行授权。您也可以选择SQL语句授权,详情请参见RAM用户权限授权快速入门。
删除用户
您可以在用户管理页面选择目标实例名称,在列表中单击目标成员操作列的删除,将该用户从实例内删除,删除后用户将没有实例的任何访问权限。
创建自定义用户
控制台操作。
您可以在用户管理页面,使用可视化方式为实例创建自定义用户。
在用户管理页面选择目标实例名称,在页面右上角单击创建自定义用户。
在创建自定义用户对话框,配置如下参数。
参数
说明
自定义账号
请自定义账号名称。最大长度为57个字符,由小写字母,数字和下划线组成。
选择成员角色
请选择用户类型。
实例超级管理员(Superuser):拥有实例的所有权限,如果子账号被授予为Superuser,则无需再额外进行其他授权。
普通用户:仅被创建至实例中,没有实例内任何对象(例如数据库、Schema和表等)的查看及操作权限,需要授予相应的权限,才可以查看或操作实例。
密码
请设置密码,密码需符合如下要求。
由大写字母、小写字母、数字、特殊字符其中三种及以上组成。
密码长度为8~32个字符。
支持的特殊字符包含
!@#$%^&*()_+-=
。
确认密码
请再次输入密码。
单击确认,完成创建自定义用户。
SQL方式操作。
create user "BASIC$<user_name>" with password '<password>';
user_name为自定义用户账号名称;password为自定义用户密码。
其他相关操作
修改自定义用户密码。
说明仅自定义用户支持修改密码,阿里云账号及RAM账号会自动生成AK/SK。
如果您需要修改自定义用户密码,有如下两种方式:
控制台操作。
在用户管理页面的用户账号列表,单击目标自定义用户操作列的重置密码。
在重置密码对话框,输入新密码和确认新密码后,单击确认。
SQL方式操作。
alter user "BASIC$<user_name>" with password '<password>';
user_name为自定义用户账号名称;password为自定义用户新密码。
删除自定义用户。
如果您需要删除自定义用户,有如下两种方式:
控制台操作。
在用户管理页面的用户账号列表,单击目标自定义用户操作列的删除。
在删除用户对话框,单击确认。
SQL方式操作。
drop user "BASIC$<user_name>";
user_name为自定义用户账号名称。
常见问题
问题现象
自定义账号访问MaxCompute外部表时出现如下报错。
ERROR: Query:[xxxxxx] Build desc failed: failed to check permission: Authorization Failed [4002], You don't exist in project hologres_test. Context ID:xxxxxx-xxxx-xxxx-xxxx-xxxxxxx. --->Tips: Pricipal:INVALID$BASIC$xxx; You don't exist in project xxx
问题原因
创建的自定义账号仅存在Hologres内部,所以默认情况下无法访问MaxCompute外部表。
解决方法
请在Hologres中创建
User Mapping
,即将一个自定义账号绑定至一个拥有MaxCompute对应项目和Hologres内部表数据权限的阿里云RAM账号。语法示例
CREATE USER MAPPING FOR "<user_name>" SERVER odps_server OPTIONS ( access_id '<Access_id>', access_key '<Access_key>' );
参数说明
参数
说明
user_name
自定义账户的用户名。
Access_id
具有当前数据库登录权限账号的AccessKey ID。
您可以单击AccessKey 管理,获取AccessKey ID。
Access_key
具有当前数据库登录权限账号的AccessKey Secret。
您可以单击AccessKey 管理,获取AccessKey Secret。
使用示例
--为用户BASIC$test创建USER MAPPING CREATE USER MAPPING FOR "BASIC$test" SERVER odps_server OPTIONS ( access_id 'LTxxxxxxxxxx', access_key 'y8xxxxxxxxxxxxx'); --为当前用户创建USER MAPPING CREATE USER MAPPING FOR CURRENT_USER SERVER odps_server OPTIONS ( access_id 'LTxxxxxxxxxx', access_key 'y8xxxxxxxxxxxxx');