Ranger 鑒權

Apache Ranger 是一個用來在 Hadoop 平臺上進行監控,啟用服務,以及全方位數據安全訪問管理的安全框架。 使用 ranger 后,會通過在 Ranger 側配置權限代替在 Doris 中執行 Grant 語句授權。 Ranger 的安裝和配置見下文:安裝和配置 Doris Ranger 插件

Ranger 示例?

更改 Doris 配置?

  1. 在 fe/conf/fe.conf 文件中配置鑒權方式為 ranger access_controller_type=ranger-doris

  2. 在所有 FE 的 conf 目錄創建?ranger-doris-security.xml?文件,內容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration><property><name>ranger.plugin.doris.policy.cache.dir</name><value>/path/to/ranger/cache/</value></property><property><name>ranger.plugin.doris.policy.pollIntervalMs</name><value>30000</value></property><property><name>ranger.plugin.doris.policy.rest.client.connection.timeoutMs</name><value>60000</value></property><property><name>ranger.plugin.doris.policy.rest.client.read.timeoutMs</name><value>60000</value></property><property><name>ranger.plugin.doris.policy.rest.url</name><value>http://172.21.0.32:6080</value></property><property><name>ranger.plugin.doris.policy.source.impl</name><value>org.apache.ranger.admin.client.RangerAdminRESTClient</value></property><property><name>ranger.plugin.doris.service.name</name><value>doris</value></property>
    </configuration>
    

    其中需要將?ranger.plugin.doris.policy.cache.dir?和?ranger.plugin.doris.policy.rest.url?改為實際值。

  3. 啟動集群

權限示例?

  1. 在 Doris 中創建?user1
  2. 在 Doris 中,先使用?admin?用戶創建一個 Catalog:hive
  3. 在 Ranger 中創建?user1
全局權限?

相當于 Doris 內部授權語句的?grant select_priv on *.*.* to user1;

  • catalog 同級下拉框可以找到 global 選項

  • 輸入框里只能輸入?*

    global

Catalog 權限?

相當于 Doris 內部授權語句的?grant select_priv on hive.*.* to user1;

catalog

Database 權限?

相當于 Doris 內部授權語句的?grant select_priv on hive.tpch.* to user1;

database

Table 權限?

這里的table泛指 表/視圖/異步物化視圖

相當于 Doris 內部授權語句的?grant select_priv on hive.tpch.user to user1;

table

列權限?

相當于 Doris 內部授權語句的?grant select_priv(name,age) on hive.tpch.user to user1;

column

Resource 權限?

相當于 Doris 內部授權語句的?grant usage_priv on resource 'resource1' to user1;

  • catalog 同級下拉框可以找到 resource 選項

resource

Workload Group 權限?

相當于 Doris 內部授權語句的?grant usage_priv on workload group 'group1' to user1;

  • catalog 同級下拉框可以找到 workload group 選項

group1

行權限示例?

2.1.3 版本支持

  1. 參考 權限示例 給 user1 分配 internal.db1.user 表的 select 權限。

  2. 在 Ranger 中添加一個 Row Level Filter policy

    Row Policy 示例

  3. 使用 user1 登錄 Doris。執行?select * from internal.db1.user,只能看到滿足?id > 3?且?age = 2?的數據。

數據脫敏示例?

2.1.3 版本支持

  1. 參考 權限示例 給 user1 分配 internal.db1.user 表的 select 權限。

  2. 在 Ranger 中添加一個 Masking policy

    Data Mask 示例

  3. 使用 user1 登錄 Doris。執行?select * from internal.db1.user,看到的 phone 是按照指定規則脫敏后的數據。

常見問題?

  1. ranger 訪問失敗,怎么查看日志

    在所有 FE 的 conf 目錄創建 log4j.properties 文件,內容如下:

    log4j.rootLogger = warn,stdout,Dlog4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%nlog4j.appender.D = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.File = /path/to/fe/log/ranger.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = INFO
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    

    其中?log4j.appender.D.File?改為實際值,用于存放 Ranger 插件的日志。

  2. 配置了 Row Level Filter policy ,但是用戶查詢時報沒有權限

    Row Level Filter policy 僅用來限制用戶訪問表中數據的特定記錄, 仍需通過 ACCESS POLICY 為用戶授權

安裝和配置 Doris Ranger 插件?

安裝插件?

  1. 下載以下文件

    • ranger-doris-plugin-3.0.0-SNAPSHOT.jar
    • mysql-connector-java-8.0.25.jar
  2. 將下載好的文件放到 Ranger 服務的?ranger-plugins/doris?目錄下,如:

    /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins/doris/ranger-doris-plugin-3.0.0-SNAPSHOT.jar
    /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins/doris/mysql-connector-java-8.0.25.jar
    

  3. 重啟 Ranger 服務。

  4. 下載?ranger-servicedef-doris.json

  5. 執行以下命令上傳定義文件到 Ranger 服務:

    curl -u user:password -X POST \-H "Accept: application/json" \-H "Content-Type: application/json" \http://172.21.0.32:6080/service/plugins/definitions \-d@ranger-servicedef-doris.json
    

    其中用戶名密碼是登錄 Ranger WebUI 所使用的用戶名密碼。

    服務地址端口可以再?ranger-admin-site.xml?配置文件的?ranger.service.http.port?配置項查看。

    如執行成功,會返回 Json 格式的服務定義,如:

    {"id": 207,"guid": "d3ff9e41-f9dd-4217-bb5f-3fa9996454b6","isEnabled": true,"createdBy": "Admin","updatedBy": "Admin","createTime": 1705817398112,"updateTime": 1705817398112,"version": 1,"name": "doris","displayName": "Apache Doris","implClass": "org.apache.ranger.services.doris.RangerServiceDoris","label": "Doris","description": "Apache Doris","options": {"enableDenyAndExceptionsInPolicies": "true"},...
    }
    

    如想重新創建,則可以使用以下命令刪除服務定義后,再重新上傳:

    curl -v -u user:password -X DELETE \
    http://172.21.0.32:6080/service/plugins/definitions/207
    

    其中?207?是創建時返回的 id。刪除前,需在 Ranger WebUI 界面刪除已創建的 Doris 服務。

    也可以通過以下命令列舉當前已添加的服務定義,以便獲取 id:

    curl -v -u user:password -X GET \
    http://172.21.0.32:6080/service/plugins/definitions/
    

配置插件?

安裝完畢后,打開 Ranger WebUI,可以再 Service Manger 界面中看到 Apache Doris 插件:

ranger

點擊插件旁邊的?+?號添加一個 Doris 服務:

ranger2

Config Properties 部分參數含義如下:

  • Username/Pasword:Doris 集群的用戶名密碼,這里建議使用 Admin 用戶。
  • jdbc.driver_class:連接 Doris 使用的 JDBC 驅動。com.mysql.cj.jdbc.Driver
  • jdbc.url:Doris 集群的 JDBC url 連接串。jdbc:mysql://172.21.0.101:9030?useSSL=false
  • 額外參數:
    • resource.lookup.timeout.value.in.ms:獲取元信息的超時時間,建議填寫?10000,即 10 秒。

可以點擊?Test Connection?檢查是否可以聯通。

之后點擊?Add?添加服務。

之后,可以在 Service Manger 界面的 Apache Doris 插件中看到創建的服務,點擊服務,即可開始配置 Ranger。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73883.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73883.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sqlserver安全篇之_啟用和禁用Named Pipes的案列介紹

https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/named-pipes-properties?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/client-protocols-named-pipes-properties-protocol-tab?viewsql-server-ver16 默認…

深入解析過濾器模式(Filter Pattern):一種靈活高效的設計模式

過濾器模式&#xff08;Filter Pattern&#xff09;&#xff0c;也被稱為標準模式&#xff0c;是一種常見的結構型設計模式。它通過將對象分為不同的標準或條件&#xff0c;使得對對象集合的操作變得更加靈活和高效。特別適用于處理復雜查詢和條件過濾的場景。過濾器模式不僅能…

Spring Boot 整合 Elasticsearch 實踐:從入門到上手

引言 Elasticsearch 是一個開源的分布式搜索引擎&#xff0c;廣泛用于日志分析、搜索引擎、數據分析等場景。本文將帶你通過一步步的教程&#xff0c;在 Spring Boot 項目中整合 Elasticsearch&#xff0c;輕松實現數據存儲與查詢。 1. 創建 Spring Boot 項目 首先&#xff…

2025年Postman的五大替代工具

雖然Postman是一個廣泛使用的API測試工具&#xff0c;但許多用戶在使用過程中會遇到各種限制和不便。因此&#xff0c;可能需要探索替代解決方案。本文介紹了10款強大的替代工具&#xff0c;它們能夠有效替代Postman&#xff0c;成為你API測試工具箱的一部分。 什么是Postman&…

Redis之單線程與多線程

redis 單線程與多線程 Redis是單線程&#xff0c;主要是指Redis的網絡IO和鍵值對讀寫是由一個線程來完成的&#xff0c;Redis在處理客戶端的請求時包含獲取(socket讀)、解析、執行、內容返回&#xff08;socket寫&#xff09;等都由一個順序串行的主線程處理&#xff0c;這就是…

C#的簡單工廠模式、工廠方法模式、抽象工廠模式

工廠模式是一種創建型設計模式&#xff0c;主要將對象的創建和使用分離&#xff0c;使得系統更加靈活和可維護。常見的工廠模式有簡單工廠模式、工廠方法模式和抽象工廠模式&#xff0c;以下是 C# 實現的三個案例&#xff1a; 簡單工廠模式 簡單工廠模式通過一個工廠類來創建…

python基礎8 單元測試

通過前面的7個章節&#xff0c;作者學習了python的各項基礎知識&#xff0c;也學習了python的編譯和執行。但在實際環境上&#xff0c;我們需要驗證我們的代碼功能符合我們的設計預期&#xff0c;所以需要結合python的單元測試類&#xff0c;編寫單元測試代碼。 Python有一個內…

算法刷題力扣

先把大寫的字母變成小寫的&#xff0c;用大寫字母32即可變為小寫字母。 寫循環跳過字符。 然后判斷是否相等即可。具體代碼如下&#xff1a; class Solution { public: bool isPalindrome(string s) { int sizes.size(); int begin0; int ends.size()-1; for(int i0;i<s…

allure下載安裝及配置

這里寫目錄標題 一、JDK下載安裝及配置二、allure下載三、allure安裝四、allure環境變量配置五、allure驗證是否安裝成功 一、JDK下載安裝及配置 allure 是一個java測試報告框架。所以要基于JDK環境。 JDK下載與安裝及配置&#xff1a;https://blog.csdn.net/qq_24741027/arti…

linux之 內存管理(1)-armv8 內核啟動頁表建立過程

一、內核啟動時&#xff0c;頁表映射有哪些&#xff1f; Linux初始化過程&#xff0c;會依次建立如下頁表映射&#xff1a; 1.恒等映射&#xff1a;頁表基地址idmap_pg_dir; 2.粗粒度內核鏡像映射&#xff1a;頁表基地址init_pg_dir; 3.fixmap映射&#xff1a;頁表基地址為…

【面試問題】Java 接口與抽象類的區別

引言 在 Java 面向對象編程中&#xff0c;接口&#xff08;Interface&#xff09;和抽象類&#xff08;Abstract Class&#xff09;是兩個重要的抽象工具。它們都能定義未實現的方法&#xff0c;但設計目標和使用場景截然不同。本文將通過語法、特性和實際案例&#xff0c;深入…

【資料分享】全志科技T113-i全國產(1.2GHz雙核A7 RISC-V)工業核心板規格書

核心板簡介 創龍科技SOM-TLT113 是一款基于全志科技T113-i 雙核ARM Cortex-A7 玄鐵C906 RISC-V HiFi4 DSP 異構多核處理器設計的全國產工業核心板&#xff0c;ARM Cortex-A7 處理單元主頻高達1.2GHz。核心板 CPU、ROM、RAM、電源、晶振等所有元器件均采用國產工業級方案&…

R語言高效數據處理-自定義格式EXCEL數據輸出

注&#xff1a;以下代碼均為實際數據處理中的筆記摘錄&#xff0c;所以很零散&#xff0c; 將就看吧&#xff0c;這一篇只是代表著我還在&#xff0c;所以可能用處不大&#xff0c;這一段時間都很煎熬&#xff01; 在實際數據處理中為了提升效率&#xff0c;將Excel報表交付給…

LeetCode 30 —— 30.串聯所有單詞的子串

題目&#xff1a; 給定一個字符串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。 注意子串要與 words 中的單詞完全匹配&#xff0c;中間不能有其他字符&#xff0c;但不需要考慮 words 中單詞串聯的順序。 示例 1&#xff…

《算法筆記》9.2小節——數據結構專題(2)->二叉樹的遍歷 問題 A: 復原二叉樹(同問題 C: 二叉樹遍歷)

題目描述 小明在做數據結構的作業&#xff0c;其中一題是給你一棵二叉樹的前序遍歷和中序遍歷結果&#xff0c;要求你寫出這棵二叉樹的后序遍歷結果。 輸入 輸入包含多組測試數據。每組輸入包含兩個字符串&#xff0c;分別表示二叉樹的前序遍歷和中序遍歷結果。每個字符串由…

SpringBoot-2整合MyBatis以及基本的使用方法

目錄 1.引入依賴 2.數據庫表的創建 3.數據源的配置 4.編寫pojo類 5.編寫controller類 6.編寫接口 7.編寫接口的實現類 8.編寫mapper 1.引入依賴 在pom.xml引入依賴 <!-- mysql--><dependency><groupId>com.mysql</groupId><artifac…

Unity Shader Graph高級節點邏輯設計:程序化噪聲生成技術詳解

一、程序化噪聲的核心價值 程序化噪聲生成是Shader開發中的關鍵核心技術&#xff0c;通過數學算法直接生成紋理信息&#xff0c;相較于傳統位圖紋理具有以下優勢&#xff1a; 無限分辨率&#xff1a;可動態適應任意顯示精度 參數化控制&#xff1a;實時調整噪聲頻率、振幅等屬…

[藍橋杯 2023 省 B] 飛機降落(不會dfs的看過來)

[藍橋杯 2023 省 B] 飛機降落 題目描述 N N N 架飛機準備降落到某個只有一條跑道的機場。其中第 i i i 架飛機在 T i T_{i} Ti? 時刻到達機場上空&#xff0c;到達時它的剩余油料還可以繼續盤旋 D i D_{i} Di? 個單位時間&#xff0c;即它最早可以于 T i T_{i} Ti? 時刻…

英偉達GTC 2025大會產品全景剖析與未來路線深度洞察分析

【完整版】3月19日&#xff0c;黃仁勛Nvidia GTC 2025 主題演講&#xff5c;英偉達 英偉達GTC 2025大會產品全景剖析與未來路線深度洞察分析 一、引言 1.1 分析內容 本研究主要采用了文獻研究法、數據分析以及專家觀點引用相結合的方法。在文獻研究方面&#xff0c;廣泛收集了…

強化學習 - PPO控制無人機

PPO&#xff08;Proximal Policy Optimization&#xff0c;近端策略優化&#xff09;是一種強化學習算法&#xff0c;用于訓練智能體&#xff08;無人機&#xff09;如何在環境中做出決策。它本質上是 策略梯度&#xff08;Policy Gradient&#xff09;方法 的一種改進&#xf…