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

用戶及權(quán)限管理

更新時(shí)間:

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

時(shí)序引擎的訪問控制體系

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

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

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

    使用方法,請參見設(shè)置白名單

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

    引擎級別提供的基于用戶認(rèn)證以及權(quán)限校驗(yàn)為主體的訪問控制。

注意事項(xiàng)

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

  • 開啟用戶認(rèn)證與權(quán)限校驗(yàn)后,如果正在運(yùn)行中的業(yè)務(wù)訪問未包含用戶信息,會發(fā)生訪問中斷,需添加用戶信息后重啟應(yīng)用。因此,在開啟該功能前,建議仔細(xì)規(guī)劃并充分評估影響。

開啟用戶認(rèn)證與權(quán)限校驗(yàn)

用戶認(rèn)證與權(quán)限校驗(yàn)?zāi)J(rèn)關(guān)閉。您需要登錄數(shù)據(jù)庫,開啟用戶認(rèn)證與權(quán)限校驗(yàn)。

開啟方法

ALTER SYSTEM SET USER_AUTH=TRUE;
說明

開啟用戶認(rèn)證與權(quán)限校驗(yàn)后,也可通過ALTER SYSTEM SET USER_AUTH=FALSE;關(guān)閉該功能。關(guān)閉后,將無法進(jìn)行認(rèn)證與權(quán)限校驗(yàn),會有安全風(fēng)險(xiǎn),建議不要關(guān)閉用戶認(rèn)證與權(quán)限校驗(yàn)。

查看開啟狀態(tài)

SHOW PARAMETER USER_AUTH;

連接信息添加用戶信息

開啟用戶認(rèn)證與權(quán)限校驗(yàn)后,業(yè)務(wù)對時(shí)序引擎的訪問都需要在連接時(shí)帶上用戶名和密碼。無論是寫入還是查詢,連接所屬用戶必須要具有訪問目標(biāo)的對應(yīng)權(quán)限,操作才能成功。通過這種方式,時(shí)序引擎可以對業(yè)務(wù)訪問進(jìn)行嚴(yán)格的安全控制以及權(quán)限隔離。

使用示例

lindorm-cli

lindorm-cli -url <Lindorm時(shí)序SQL地址> -username <用戶名> -password <密碼> -database <目標(biāo)數(shù)據(jù)庫名>

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

JDBC

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

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

詳細(xì)的JDBC連接文檔,請參見通過JDBC Driver連接并訪問Lindorm時(shí)序引擎

Druid

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

詳細(xì)的Druid連接文檔,請參見通過Druid連接池連接并訪問時(shí)序引擎

HTTP API

對于使用OpenTSDB兼容的HTTP API訪問時(shí)序引擎的應(yīng)用,當(dāng)用戶認(rèn)證與權(quán)限校驗(yàn)功能啟用時(shí),發(fā)送請求到API,也需要指定用戶信息。

指定用戶信息的方法

指定方法類似調(diào)用通用SQL接口,通過在HTTP請求頭中加入基于Basic Authentication協(xié)議編碼的用戶認(rèn)證信息,詳細(xì)可參見用戶認(rèn)證信息指定

說明

使用時(shí)間序列數(shù)據(jù)庫TSDB SDK的業(yè)務(wù),可以通過創(chuàng)建TSDBConfig對象時(shí)調(diào)用basicAuth方法來指定用戶名和密碼。

url = "<Lindorm時(shí)序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()}"
}

詳細(xì)的HTTP API連接文檔,請參見請求內(nèi)容

調(diào)用HTTP API所需的權(quán)限信息,請參見訪問OpenTSDB兼容API所需的權(quán)限

用戶與權(quán)限管理

權(quán)限模型

權(quán)限類型

時(shí)序引擎中的權(quán)限分為四種:

權(quán)限名

含義

READ

讀權(quán)限。查詢數(shù)據(jù)時(shí),要求用戶對查詢所涉及的數(shù)據(jù)表具有讀權(quán)限。

WRITE

寫權(quán)限。寫入數(shù)據(jù)時(shí),要求用戶對查詢所涉及的數(shù)據(jù)表具有寫權(quán)限。

ADMIN

管理權(quán)限。對時(shí)序引擎中的數(shù)據(jù)對象進(jìn)行管理時(shí),需要用戶對操作的數(shù)據(jù)對象具有管理權(quán)限。

SYSTEM

系統(tǒng)權(quán)限。當(dāng)操作可能會影響整個(gè)實(shí)例的行為時(shí),需要用戶具有系統(tǒng)權(quán)限。

授權(quán)范圍

時(shí)序引擎支持限定用戶授權(quán)的范圍。時(shí)序引擎支持的授權(quán)范圍如下:

  • GLOBAL

    全局范圍的授權(quán)與撤回。

    當(dāng)用戶被賦予全局范圍的權(quán)限后,用戶則擁有了對于整個(gè)時(shí)序引擎內(nèi)所有數(shù)據(jù)對象的對應(yīng)操作權(quán)限。例如,全局的READ權(quán)限將允許用戶查詢?nèi)我鈹?shù)據(jù)庫中的任意時(shí)序數(shù)據(jù)表。

  • DATABASE

    數(shù)據(jù)庫粒度的授權(quán)與撤回。

    當(dāng)用戶被賦予某個(gè)數(shù)據(jù)庫的權(quán)限后,用戶則擁有了對于該數(shù)據(jù)庫內(nèi)部所有數(shù)據(jù)對象的對應(yīng)操作權(quán)限。例如,某個(gè)數(shù)據(jù)庫DB1的READ權(quán)限將允許用戶查詢該數(shù)據(jù)庫內(nèi)的所有時(shí)序數(shù)據(jù)表。

授權(quán)規(guī)則

  • 系統(tǒng)權(quán)限(SYSTEM)為全局(GLOBAL)權(quán)限。

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

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

管理用戶與權(quán)限

時(shí)序引擎支持通過SQL和寬表引擎集群管理系統(tǒng)管理用戶與權(quán)限。

SQL管理用戶與權(quán)限

  • 增加用戶,請參見CREATE USER

  • 刪除用戶,請參見DROP USER

  • 修改用戶密碼,請參見ALTER USER

  • 查看已有用戶,請參見SHOW

  • 授權(quán),請參見GRANT

  • 撤回授權(quán),請參見REVOKE

集群管理系統(tǒng)管理用戶與權(quán)限

時(shí)序引擎的用戶信息與權(quán)限數(shù)據(jù)與寬表引擎通用。如果您也開通了寬表引擎,可以登錄寬表引擎的集群管理系統(tǒng)管理用戶與權(quán)限。集群管理系統(tǒng)的用法,請參見登錄集群管理系統(tǒng)

重要
  • 寬表引擎集群管理系統(tǒng)支持TRASH權(quán)限,該權(quán)限目前在時(shí)序引擎中無實(shí)際意義。

  • 如果寬表引擎中的Namespace與時(shí)序引擎的Database同名,且某個(gè)用戶擁有該Namespace的權(quán)限,則該用戶默認(rèn)就擁有了時(shí)序引擎同名Database的相應(yīng)權(quán)限。

常用SQL所需權(quán)限

常用的SQL語句所需的權(quán)限可參見下表。

說明

下表中○表示需要的權(quán)限,×表示不需要的權(quán)限。

SQL語句

GLOBAL

DATABASE

備注

READ

WRITE

ADMIN

SYSTEM

READ

WRITE

ADMIN

SELECT...FROM...

×

×

×

×

×

-

INSERT INTO...VALUES...

×

×

×

×

×

-

INSERT INTO...SELECT...

×

×

×

需要INSERT目標(biāo)表的WRITE權(quán)限,以及SELECT源表的READ權(quán)限。

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所需的權(quán)限

調(diào)用HTTP API時(shí)需要用戶具備GLOBAL權(quán)限。

各個(gè)API所需的權(quán)限可參見下表。

說明

下表中○表示需要的權(quán)限,×表示不需要的權(quán)限。

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

×

×