日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

用戶及權限管理

用戶與權限管理可以實現不同用戶對不同數據庫的訪問權限控制,防止未授權用戶惡意訪問或篡改數據,從而提高數據庫的安全性。Lindorm時序引擎默認未啟用用戶認證與權限校驗。您需要手動開啟用戶認證與權限校驗。開啟后,連接時添加用戶信息,鑒權通過才能連接成功。本文介紹如何開啟用戶認證與權限校驗,如何在連接信息中添加用戶信息,以及常用SQL和HTTP API的所需權限。

時序引擎的訪問控制體系

Lindorm提供了一套多層次的訪問控制體系,從而提供企業級應用的安全保障。訪問控制體系如下所示:

  • 第一層:阿里云提供的管理用戶身份與資源訪問權限服務RAM。

  • 第二層:實例級別的物理層面訪問控制

    使用方法,請參見設置白名單

  • 第三層:引擎級別的邏輯層面訪問控制

    引擎級別提供的基于用戶認證以及權限校驗為主體的訪問控制。

注意事項

  • Lindorm實例創建后會默認創建一個初始用戶。默認用戶名和密碼均為root_tsdb(3.4.30以下版本默認用戶和密碼均為root)。實例創建完成后,請立即修改初始用戶的密碼,避免安全隱患。

  • 開啟用戶認證與權限校驗后,如果正在運行中的業務訪問未包含用戶信息,會發生訪問中斷,需添加用戶信息后重啟應用。因此,在開啟該功能前,建議仔細規劃并充分評估影響。

開啟用戶認證與權限校驗

用戶認證與權限校驗默認關閉。您需要登錄數據庫,開啟用戶認證與權限校驗。

開啟方法

ALTER SYSTEM SET USER_AUTH=TRUE;
說明

開啟用戶認證與權限校驗后,也可通過ALTER SYSTEM SET USER_AUTH=FALSE;關閉該功能。關閉后,將無法進行認證與權限校驗,會有安全風險,建議不要關閉用戶認證與權限校驗。

查看開啟狀態

SHOW PARAMETER USER_AUTH;

連接信息添加用戶信息

開啟用戶認證與權限校驗后,業務對時序引擎的訪問都需要在連接時帶上用戶名和密碼。無論是寫入還是查詢,連接所屬用戶必須要具有訪問目標的對應權限,操作才能成功。通過這種方式,時序引擎可以對業務訪問進行嚴格的安全控制以及權限隔離。

使用示例

lindorm-cli

lindorm-cli -url <Lindorm時序SQL地址> -username <用戶名> -password <密碼> -database <目標數據庫名>

詳細的lindorm-cli連接文檔,請參見通過Lindorm-cli連接并使用Lindorm時序引擎

JDBC

String url = "<Lindorm時序SQL地址>";
String username = "<用戶名>";
String password = "<密碼>";
Connection conn = null;

try {
    conn = DriverManager.getConnection(url, username, password);
    // 連接成功,執行操作
} catch (SQLException e) {
    e.printStackTrace();
}

詳細的JDBC連接文檔,請參見通過JDBC Driver連接并訪問Lindorm時序引擎

Druid

dataSource.setDriver(DriverManager.getDriver("<Lindorm時序SQL地址>"))
dataSource.setUrl("<Lindorm時序SQL地址>")
dataSource.setUsername("<用戶名>")
dataSource.setPassword("<密碼>")

詳細的Druid連接文檔,請參見通過Druid連接池連接并訪問時序引擎

HTTP API

對于使用OpenTSDB兼容的HTTP API訪問時序引擎的應用,當用戶認證與權限校驗功能啟用時,發送請求到API,也需要指定用戶信息。

指定用戶信息的方法

指定方法類似調用通用SQL接口,通過在HTTP請求頭中加入基于Basic Authentication協議編碼的用戶認證信息,詳細可參見用戶認證信息指定

說明

使用時間序列數據庫TSDB SDK的業務,可以通過創建TSDBConfig對象時調用basicAuth方法來指定用戶名和密碼。

url = "<Lindorm時序HTTP地址>/api/v2/sql"
username = "<用戶名>"
password = "<用戶名>"
auth = HTTPBasicAuth(username, password)


headers = {
    "Content-Type": "text/plain",
    "Authorization": f"Basic {base64.b64encode(f'{username}:{password}'.encode()).decode()}"
}

詳細的HTTP API連接文檔,請參見請求內容

調用HTTP API所需的權限信息,請參見訪問OpenTSDB兼容API所需的權限

用戶與權限管理

權限模型

權限類型

時序引擎中的權限分為四種:

權限名

含義

READ

讀權限。查詢數據時,要求用戶對查詢所涉及的數據表具有讀權限。

WRITE

寫權限。寫入數據時,要求用戶對查詢所涉及的數據表具有寫權限。

ADMIN

管理權限。對時序引擎中的數據對象進行管理時,需要用戶對操作的數據對象具有管理權限。

SYSTEM

系統權限。當操作可能會影響整個實例的行為時,需要用戶具有系統權限。

授權范圍

時序引擎支持限定用戶授權的范圍。時序引擎支持的授權范圍如下:

  • GLOBAL

    全局范圍的授權與撤回。

    當用戶被賦予全局范圍的權限后,用戶則擁有了對于整個時序引擎內所有數據對象的對應操作權限。例如,全局的READ權限將允許用戶查詢任意數據庫中的任意時序數據表。

  • DATABASE

    數據庫粒度的授權與撤回。

    當用戶被賦予某個數據庫的權限后,用戶則擁有了對于該數據庫內部所有數據對象的對應操作權限。例如,某個數據庫DB1的READ權限將允許用戶查詢該數據庫內的所有時序數據表。

授權規則

  • 系統權限(SYSTEM)為全局(GLOBAL)權限。

  • 只有具有系統權限(SYSTME)或全局(GLOBAL)的管理權限(ADMIN)的用戶,可以創建或刪除用戶、授權、回收權限。

  • 用戶實際的權限是其擁有的所有權限的并集。例如,如果用戶具有全局(GLOBAL)的讀權限(READ),同時具有某個數據庫(DATABASE)的讀權限(READ),則可以查詢時序引擎內所有數據庫的數據。

管理用戶與權限

時序引擎支持通過SQL和寬表引擎集群管理系統管理用戶與權限。

SQL管理用戶與權限

集群管理系統管理用戶與權限

時序引擎的用戶信息與權限數據與寬表引擎通用。如果您也開通了寬表引擎,可以登錄寬表引擎的集群管理系統管理用戶與權限。集群管理系統的用法,請參見登錄集群管理系統

重要
  • 寬表引擎集群管理系統支持TRASH權限,該權限目前在時序引擎中無實際意義。

  • 如果寬表引擎中的Namespace與時序引擎的Database同名,且某個用戶擁有該Namespace的權限,則該用戶默認就擁有了時序引擎同名Database的相應權限。

常用SQL所需權限

常用的SQL語句所需的權限可參見下表。

說明

下表中○表示需要的權限,×表示不需要的權限。

SQL語句

GLOBAL

DATABASE

備注

READ

WRITE

ADMIN

SYSTEM

READ

WRITE

ADMIN

SELECT...FROM...

×

×

×

×

×

-

INSERT INTO...VALUES...

×

×

×

×

×

-

INSERT INTO...SELECT...

×

×

×

需要INSERT目標表的WRITE權限,以及SELECT源表的READ權限。

DESCRIBE DATABASE ...

×

×

×

×

×

-

CREATE DATABASE...

×

×

×

×

×

×

-

ALTER DATABASE...

×

×

×

×

×

-

DROP DATABASE...

×

×

×

×

×

-

SHOW DATABASES

×

×

×

×

×

×

-

DESCRIBE TABLE ...

×

×

×

×

×

-

CREATE TABLE...

×

×

×

×

×

-

DROP TABLE...

×

×

×

×

×

-

CREATE USER

×

×

×

×

×

-

ALTER USER...

×

×

×

×

×

-

DROP USER...

×

×

×

×

×

-

SHOW USERS

×

×

×

×

×

-

GRANT...

×

×

×

×

×

-

REVOKE...

×

×

×

×

×

-

SHOW PRIVILEGES...

×

×

×

×

×

-

ALTER SYSTEM...

×

×

×

×

×

×

-

SHOW PARAMETER...

×

×

×

×

×

×

-

訪問OpenTSDB兼容API所需的權限

調用HTTP API時需要用戶具備GLOBAL權限。

各個API所需的權限可參見下表。

說明

下表中○表示需要的權限,×表示不需要的權限。

API種類

GLOBAL WRITE

GLOBAL READ

GLOBAL ADMIN

/api/put

×

×

/api/query

×

×

/api/query/last

×

×

/api/mput

×

×

/api/mquery

×

×

/api/query/mlast

×

×

/api/suggest

×

×

/api/dump_meta

×

×

/api/search/lookup

×

×

/api/ttl

×

×

/api/truncate

×

×