国产性生交xxxxx免费-国产中文字幕-啊灬啊灬啊灬快灬高潮了,亚洲国产午夜精品理论片在线播放 ,亚洲欧洲日本无在线码,色爽交视频免费观看

鍋爐信息網 > 鍋爐知識 > 鍋爐百科

Clickhouse權限管理

發布時間:

轉載自(該博客有很多數據庫相關的文章):Lansonli:大數據ClickHouse進階(二十四):ClickHouse權限管理ClickHouse權限管理ClickHouse從訪問

轉載自(該博客有很多數據庫相關的文章):

Lansonli:大數據ClickHouse進階(二十四):ClickHouse權限管理

ClickHouse權限管理

ClickHouse從訪問、查詢和數據角度提供了一個較為立體的權限體系。

一、???????訪問權限

訪問權限是整個權限體系的第一層防護,可以分為兩類權限。

1、網絡訪問權限

網絡權限使用networks標簽設置,用戶限制某個用戶登錄的客戶端地址,例如,修改users.xml文件:

<zhangsan>n <!-- 設置用戶允許登錄的網絡地址 -->n <networks>n <!-- 限制在此ip登錄 -->n <ip>192.168.179.5</ip>n </networks>n</zhangsan>

?

修改之后,在node1(192.168.179.4)上登錄zhangsan用戶登錄不上。

[root@node1 logs]# ClickHouse-client -u zhangsan --password 123456nClickHouse client version 21.9.4.35 (official build).nConnecting to localhost:9000 as user zhangsan.nCode: 516. DB::Exception: Received from localhost:9000. DB::Exception: zhangsan: Authentication failed: password is incorrect or there is no user with such name. (AUTHENTICATION_FAILED)

?

2、數據庫與字典訪問權限

當客戶端連入ClickHouse之后,可以進一步限制某個用戶數據庫和字典的訪問權限,可以通過<allow_database>和<allow_dictionaries>標簽進行設置,如果不進行任何定義則表示不進行限制。

現在針對用戶zhangsan只能使用default庫,在users.xml中的配置如下:

<zhangsan>n <!-- 設置用戶訪問數據庫 -->n <allow_databases>n <database>default</database>n <database>datasets</database>n </allow_databases>n</zhangsan>

?

配置完成之后,使用zhangsan用戶重新登錄ClickHouse,查看數據庫:

node1 :) show databases;n┌─name─────┐n│ datasets │n│ default │n└──────────┘

?

二、??????????????查詢權限

查詢權限是整個權限體系的第二層防護,它決定了一個用戶能夠執行的查詢語句,查詢權限可以分為以下四類:

  • 讀權限:包括SELECT、EXISTS、SHOW和DESCRIBE查詢。
  • 寫權限:包括INSERT和OPTIMIZE查詢。
  • 設置權限:包括SET查詢。
  • DDL權限:包括CREATE、DROP、ALTER、RENAME、ATTACH、DETACH和TRUNCATE查詢。

上述四類權限,可以通過以下兩項配置標簽控制:

1、readonly

讀權限、寫權限和設置權限均由此標簽控制,它有三種取值:

  • 當取值為0時,不進行任何限制(默認值)
  • 當取值為1時,只擁有讀權限(只能執行SELECT、EXISTS、SHOW和DESCRIBE)
  • 當取值為2時,擁有讀權限和設置權限(在讀權限基礎上,增加了SET查詢)

2、allow_ddl

DDL權限由此標簽控制,它有兩種取值:

  • 當取值為0時,不允許DDL查詢。
  • 當取值為1時,允許DDL查詢(默認值)。

此外,需要注意的是readonly和allow_ddl需要定義在用戶使用的profiles角色中。

查詢權限測試如下:

首先,在users.xml中增加新角色normal,并配置只有read讀權限,配置如下:

<yandex>n <!-- 配置profiles -->n <profiles>n ... ...n <!-- 自定義角色normal,只有read讀權限 -->n <normal>n <readonly>1</readonly> n <allow_ddl>0</allow_ddl>n </normal>n ... ...n </profiles>n ... ...n</yandex>

?

其次在users.xml中給zhangsan配置角色為normal:

<!-- 用戶使用的profile 角色 -->n<zhangsan>n... ...n <profile>normal</profile>n</zhangsan>

?

配置完成之后,使用用戶zhangsan登錄ClickHouse,做如下操作:

#創建數據庫nnode1 :) create database aaa;n DB::Exception: zhangsan: Not enough privileges. To execute this query it's necessary to have grant CREATE DATABASE ON aaa.*. (ACCESS_DENIED)nn#查詢表person_info中數據nnode1 :) select * from person_info;n┌─id─┬─name─┬─age─┬─gender─┬─loc─────┐n│ 1 │ zs │ 18 │ m │ beijing │n│ 3 │ ww │ 20 │ m │ beijing │n└────┴──────┴─────┴────────┴─────────┘n┌─id─┬─name─┬─age─┬─gender─┬─loc──────┐n│ 2 │ ls │ 19 │ f │ shanghai │n│ 4 │ ml │ 21 │ m │ shanghai │n└────┴──────┴─────┴────────┴──────────┘nn#向表person_info中插入數據nnode1 :) insert into person_info values (5,'xx',10,'f','beijing');nDB::Exception: zhangsan: Cannot execute query in readonly mode. (READONLY)

?

通過以上測試我們發現權限已經生效。

三、??????????????數據行級權限

數據權限是整個權限體系中的第三層防護,決定了一個用戶能夠看到什么數據。數據權限使用database標簽定義,是用戶定義中的一項選填設置,database通過定義用戶級別的查詢過濾器來實現數據的行級粒度權限,定義規則如下:

<databases>n <database_name><!-- 數據庫名稱 -->n <table_name><!-- 表名稱 -->n <filter>id < 10</filter><!-- 數據過濾條件 -->n </table_name>n </database_name>n</databases>

?

以上標簽中database_name是數據庫名稱,table_name是表名稱,而filter則是權限過濾的關鍵,等同于定義了一條where條件,支持組合條件。

下面測試數據權限,給用戶zhangsan限制讀取表person_info數據中id<=2 或者id=4的數據,配置users.xml如下:

<zhangsan>n ... ...n <databases>n <default><!-- 數據庫名稱 -->n <person_info><!-- 表名稱 -->n <!-- 過濾條件id <=2 or id =4 -->n <filter>id&lt;=2 or id=4 </filter> <!-- 數據過濾條件 --> </person_info>n </default>n </databases>n</zhangsan>

?

注意:

  • < 表示小于號
  • 表示大于號

以上配置完成之后,使用zhangsan登錄ClickHouse查詢數據,結果如下:

node1 :) select * from person_info;n┌─id─┬─name─┬─age─┬─gender─┬─loc─────┐n│ 1 │ zs │ 18 │ m │ beijing │n└────┴──────┴─────┴────────┴─────────┘n┌─id─┬─name─┬─age─┬─gender─┬─loc──────┐n│ 2 │ ls │ 19 │ f │ shanghai │n│ 4 │ ml │ 21 │ m │ shanghai │n└────┴──────┴─────┴────────┴──────────┘

可見配置的數據行級權限生效。

精選推薦

  • 711關東煮供應商
    711關東煮供應商

    今天給大家介紹三位,奶粉,全家、羅森這些便利店里關東煮的供應商。店里賣三四塊錢一串的關東煮,在網上買不到,一塊錢就搞定。首先關東

  • 健康日歷|高壓鍋容易爆炸的4個原因
    健康日歷|高壓鍋容易爆炸的4個原因

    來源:醫藥養生保健報設計:李雅琴醫學審核:姜峰出品人:胡麗麗

  • 高爐
    高爐

    今天這活卻是個白事,等到了時辰,那家人便準備火化,本來準備送普爐,我卻心中一動,便對那家人說道:“這老人走也不要省,還是送高爐吧。”

  • 高壓鍋和電壓力鍋的區別,推薦幾款點壓力鍋
    高壓鍋和電壓力鍋的區別,推薦幾款點壓

    記得之前有一次去朋友家玩,他正在用高壓鍋煮小米粥,是的,高壓鍋壓小米粥,大概煮了半小時,高壓鍋突然爆炸了,現場慘不忍睹啊,幸好廚房里沒

0