在管理用户账号之前,首先需要登录阿里云官网,进入TSDB管理控制台,选择已经购买的实例。时序数据库 TSDB 1.0(引擎版本>=2.5.13)实例支持用户管理账号:super账号和普通账号。您可以在控制台管理所有账号,账号拥有的权限分为四类:只读、只写、读写、super。
管理用户账号
在管理控制台中的账号管理页面中点击开启账号管理。
在管理控制台中的账号管理页面中点击创建。
进入创建页面后,设置账号和密码。
创建super账号:
创建普通账号:
参数说明:
账号:由字母、数字、下划线组成,以字母开头、字母或数字结尾,不超过10个字节。
密码:只能包含英文,数字,以及下划线,”@”, “#”, “.”四个特殊字符;长度在6~20个字节之间。
创建账号成功后,如下图所示(假设我们在这里创建了一个名为
test
的账号)。
在账号管理页面中,点击需要删除的用户账号对应的删除按钮即可,如下图所示。
在管理控制台中的账号管理页面中点击关闭账号管理。
读写TSDB时使用用户信息进行鉴权
在上一章节中添加的TSDB用户,需要在查询/写入TSDB时使用添加的TSDB用户信息进行API鉴权。在开启用户账号管理的状态下,访问TSDB的大部分HTTP API时都需要以用户鉴权的方式进行HTTP请求。TSDB各个HTTP API对应不同的用户权限所采用的策略,请参见本文的常用API的权限策略 。
根据所创建的TSDB用户的权限,使用 curl
命令行工具组装以下请求访问TSDB实例的api/put
或api/query
接口即可验证所创建用户的可用性。如下所示(以 api/put
为例):
curl -X POST -u ${创建的用户名}:${对应的用户密码明文} http://ts-xxxxxxx.hitsdb.tsdb.aliyuncs.com:8242/api?summary -d '[{"metric":"sys.cpu.nice","timestamp":1346846400,"value":18,"tags":{"host":"web01","dc":"lga"}}]'
TSDBConfig
对象时调用basicAuth
方法传入创建的TSDB用户名以及密码的明文,之后所有从这个TSDBConfig
对象派生出的连接都将会使用传入的用户信息访问TSDB。若要访问具备用户鉴权能力的TSDB服务实例,必须使用SDK的0.2.7及以上版本。
在非Java语言的应用中配置用户信息
对于无法使用 SDK的应用,如一个Python应用或一个Go语言应用等等,开发者需要结合自己所使用的HTTP客户端库拼装用于访问TSDB服务的HTTP连接时,对HTTP请求的Header中加入Authorization
字段,并基于RFC 2617定义的基本认证格式,组装基本认证凭据文本,填入上述Authorization
字段。
只有这样拼装的HTTP请求才有可能被TSDB服务接受并进行鉴权;否则将直接予以拒绝。
Basic {BASE64编码的认证信息}
其中需要被BASE64编码的认证信息明文为%Authorization:Basic ${创建的用户名}:${对应的用户密码}%
(中间一定以冒号相隔)。
常用API的权限策略
API种类 | No credential | WriteOnly | ReadOnly | ReadWrite | Super |
---|---|---|---|---|---|
/api/put | × | ○ | × | ○ | ○ |
/api/query | × | × | ○ | ○ | ○ |
/api/query/last | × | × | ○ | ○ | ○ |
/api/mput | × | ○ | × | ○ | ○ |
/api/mquery | × | × | ○ | ○ | ○ |
/api/query/mlast | × | × | ○ | ○ | ○ |
/api/prom_write | × | ○ | × | ○ | ○ |
/api/prom_read | × | × | ○ | ○ | ○ |
/api/suggest | × | × | ○ | ○ | ○ |
/api/dump_meta | × | × | ○ | ○ | ○ |
/api/search/lookup | × | × | ○ | ○ | ○ |
/api/ttl | × | × | × | × | ○ |
/api/delete_meta | × | ○ | × | ○ | ○ |
/api/delete_data | × | ○ | × | ○ | ○ |
/api/truncate | × | × | × | × | ○ |