在系統管理使用者帳號之前,首先需要登入阿里雲官網,進入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 | × | × | × | × | ○ |