该示例从一个没有任何子账号的阿里云用户开始进行说明,请将以下内容中出现的 AccessKey 替换成您自己对应的 AccessKey。

准备工作

由于在测试中会用到表格存储的命令行工具,直接通过命令行读写数据。所以,您需要先下载、安装并配置表格存储的命令行工具。

  1. 下载命令行工具。

    下载地址:表格存储 CLI 工具包

  2. 按照下面的方法进行安装配置:
    	安装依赖:python onekey_INSTALL.py 
    	参数配置:python ots_console --url https://<InstanceName>.cn-hangzhou.ots.aliyuncs.com --id <AccessID> --key <AccessKey>
    	执行命令:如建表,ct pk1:string,pk2:integer readrt:1 writert:1
    

    详细用法和其它命令请参考 CLI 工具包内的帮助文档。

创建子账号并授权

假定该用户是一个移动开发者,目前使用名为 ram-test-dev 的实例用来做开发测试等功能。为避免 AccessKey 或者密码泄露导致的问题,建议不要再使用主账号来访问这个实例,而是创建一个子账号并赋予其相应的权限,用子账号进行访问即可。

操作步骤
  1. 使用主账号登录访问控制 RAM 控制台
  2. 单击左侧导航栏的用户管理,进入用户管理页面。
  3. 单击右上角的新建用户,进入创建用户页面,创建一个拥有和主账号一样完全访问表格存储权限的子账号。
  4. 填写账号信息并勾选为该用户自动生成 AccessKey,然后单击确定。本示例中使用的用户名称是 ram_test。


  5. 创建账号的最后一步会生成该账号的 AccessKey,单击保存 AK 信息
    说明 这是该账号的 AccessKey 可供下载的唯一机会,请及时保存。


  6. 单击 ram_test 右侧操作栏中的授权按钮。
  7. 搜索管理表格存储服务(OTS)的权限,并将该权限添加到右侧区域,为 ram_test 赋予表格存储的完全访问权限。


  8. 授权完成后,如果该账号需要控制台登录等权限,可在用户管理页面,单击 ram_test 右侧操作栏中的管理按钮进行操作。

测试示例

创建子账号并成功授予权限后,可测试建表和删表的操作。下面示例中使用了 ram_test 的 AccessKey,试验过程中请替换成您自己获取到的 AccessKey。

$python ots_console --url https://TableStoreTest.cn-hangzhou.ots.aliyuncs.com --id VPIzjuDB6T4FGoWM --key r1usnIQ4Tw1yI6bNJkKay6A8EJoMvs

$OTS-TableStoreTest>: ct test pk1:string,pk2:integer readrt:1 writert:1
Table test has been created successfully.

$OTS-TableStoreTest>: dt test
You will delete the table:test!

press Y (confirm) :Y
Table test has been deleted successfully.

由上述示例可见,一般的操作已经完全可以用 ram_test 这个子账号来完成,而不需要用主账号,避免了泄露主账号的 AccessKey 的问题。

读/写权限分离

当需要对部分用户共享表格存储某个实例的数据,但又不希望数据被修改时,可以创建一个具有只读权限的子账号,做到读/写权限分离。

创建一个 ram_test_pub 的账号,在 编辑个人授权策略页面选择 ReadOnly 即可,如下图所示。



测试示例

使用该账号的 AccessKey 测试建表和删表的权限。下面示例中使用了 ram_test_pub 的 AccessKey,试验过程中请替换成您自己获取到的 AccessKey。

$python ots_console --url https://TableStoreTest.cn-hangzhou.ots.aliyuncs.com --id ftWyMEYu1rBYTbWM --key u4qR5IGu5xJsvSO1y8moyC6n5vA7af

$OTS-TableStoreTest>: ct test pk1:string,pk2:integer readrt:1 writert:1
Fail to create table test.

$OTS-TableStoreTest>: dt test
You will delete the table:test!

press Y (confirm) :Y
Fail to delete table test.
说明 由上述示例可见,ram_test_pub 没有建表和删表的权限。