如何为AnalyticDB for MySQL 2.0支持账号授权
当您在使用AnalyticDB for MySQL 2.0过程中遇到问题需要工程师进行问题诊断时,您需要将AnalyticDB for MySQL 2.0支持账号analyticdb_support
的SELECT
、SHOW
权限授予工程师,以便工程师查看问题详情,帮助您解决问题。授权方式如下所示。
在集群列表页面,找到目标集群,单击右侧的登录数据库。
在DMS for AnalyticDB中,单击主子账号授权,按照下图所示进行
analyticdb_support
账号授权。注意:授权
analyticdb_support
的只读(SELECT
、SHOW
)权限即可,问题诊断完毕后需要您及时回收权限。
为主账号授予GRANT、SELECT等权限
主账号的账号格式为ALIYUN$account_name
,其中ALIYUN$
为主账号前缀,标识该账号为阿里云主账号;account_name
为主账号的账号名。
例如,将ads_database的GRANT OPTION
、SELECT
、INSERT
权限授予主账号ALIYUN$doc_test
。
GRANT GRANT OPTION on ads_database.* to 'ALIYUN$doc_test';
GRANT SELECT on ads_database.* to 'ALIYUN$doc_test';
GRANT INSERT on ads_database.* to 'ALIYUN$doc_test';
为RAM子账号授予GRANT、SELECT等权限
RAM子账号的账号格式为RAM$account_name:subaccount_name
,其中RAM$
为子账号前缀,标识该账号为RAM子账号;account_name
为主账号名;subaccount_name
为RAM子账号的账号名。
例如,主账号ALIYUN$doc_test
将ads_database的GRANT OPTION
和SELECT
权限授予RAM子账号RAM$doc_test:liujing
。
GRANT GRANT OPTION on ads_database.* to 'RAM$doc_test:liujing';
GRANT SELECT on ads_database.* to 'RAM$doc_test:liujing';
获取主账号的AccessKeyId和AccessKeySecret
主账号登录阿里云控制台。
将鼠标放在右上方的用户名区域,在弹出的快捷菜单中选择accesskeys。
系统弹出安全提示对话框,单击继续使用AccessKey。页面显示AccessKeyId和AccessKeySecret。
获取子账号的AccessKeyId和AccessKeySecret
登录RAM控制台。
单击用户名进入用户管理页面,找到页面下端的用户AccessKey。
单击创建新的AccessKey。
通过REVOKE命令移除了表的权限,为何仍可以查询表?
AnalyticDB for MySQL 2.0权限按库> 表组 > 表 > 列的顺序依次向下继承。需要注意的是,如果某个账号拥有数据库级别的权限但撤销其中某个表的权限,则这个账号依然有该表的权限。
您可以通过以下命令查看账号的授权情况,查看某个账号是否拥有数据库级别的权限。
show grants for 'ALIYUN$sqream_support' on *;
为什么新增用户后,使用新用户账号无法执行命令?
新增用户后,需要为新增用户授权,然后才能使用该账号执行命令。如何授权请参见GRANT。
报错信息{"errorCode":"40001","errorMsg":"aliyunID not exist"}
如何处理?
该错误说明阿里云账号不存在,请检查命令中的指定账号是否正确。
报错信息calling ak.sdk getServiceStatus error xxx
如何处理?
以下两种原因导致上述错误:
当前账号不是阿里云账号。
阿里云UMMAK服务不稳定,建议等待几分钟后重试。
报错信息You don't have privilege for connecting database 'xxx', userId=ALIYUN$126**********270, schemaId=***, user=xxx.
如何处理?
上述报错提示您无权限连接AnalyticDB for MySQL 2.0。您当前使用的AK对应账号没有数据库的权限,请检查AK是否正确,以及AK对应的账号是否拥有数据库的权限。
主账号没有授予子账号GRANT授权,为什么子账号仍有操作权限?
以下两种原因导致上述错误:
在RAM中为子账号配置了权限,请前往RAM控制台(用户 >权限管理)确认子账号权限。
主账号授予子账号GRANT授权,可以使用主账号执行SHOW GRANTS进行确认。