This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git

The following commit(s) were added to refs/heads/master by this push:
     new 213735b5fb [doc](auth)ranger doc (#17927)
213735b5fb is described below

commit 213735b5fb87205983c70b09f3e9f656821e68c2
Author: zhangdong <493738...@qq.com>
AuthorDate: Wed Mar 22 09:38:54 2023 +0800

    [doc](auth)ranger doc (#17927)
---
 docs/en/docs/lakehouse/multi-catalog/hive.md    | 112 ++++++++++++++++++++----
 docs/zh-CN/docs/lakehouse/multi-catalog/hive.md | 112 ++++++++++++++++++++----
 2 files changed, 188 insertions(+), 36 deletions(-)

diff --git a/docs/en/docs/lakehouse/multi-catalog/hive.md 
b/docs/en/docs/lakehouse/multi-catalog/hive.md
index c6b59bb802..0861357e01 100644
--- a/docs/en/docs/lakehouse/multi-catalog/hive.md
+++ b/docs/en/docs/lakehouse/multi-catalog/hive.md
@@ -134,25 +134,6 @@ CREATE CATALOG hive PROPERTIES (
 );
 ```
 
-<version since="dev">
-
-when connecting to Hive Metastore which is authorized by Ranger, need some 
properties and update FE runtime environment.
-
-1. add below properties when creating Catalog:
-
-```sql
-"access_controller.properties.ranger.service.name" = "<the ranger servive name 
your hms using>",
-"access_controller.class" = 
"org.apache.doris.catalog.authorizer.RangerHiveAccessControllerFactory",
-```
-
-2. update all FEs' runtime environment:
-   a. copy all ranger-*.xml files to <doris_home>/conf which are located in 
HMS/conf directory
-   b. update value of `ranger.plugin.hive.policy.cache.dir` in 
ranger-<ranger_service_name>-security.xml to a writable directory
-   c. add a log4j.properties to <doris_home>/conf, thus you can get logs of 
ranger authorizer
-   d. restart FE
-
-</version>
-
 In Doris 1.2.1 and newer, you can create a Resource that contains all these 
parameters, and reuse the Resource when creating new Catalogs. Here is an 
example:
 
 ```sql
@@ -214,3 +195,96 @@ This is applicable for Hive/Iceberge/Hudi.
 | `map<KeyType, ValueType>` | `map<KeyType, ValueType>` | Not support nested 
map. KeyType and ValueType should be primitive types. |
 | `struct<col1: Type1, col2: Type2, ...>` | `struct<col1: Type1, col2: Type2, 
...>` | Not support nested struct. Type1, Type2, ... should be primitive types. 
|
 | other         | unsupported   |                                              
     |
+
+## Use Ranger for permission verification
+
+<version since="dev">
+
+Apache Ranger is a security framework for monitoring, enabling services, and 
managing comprehensive data security access on the Hadoop platform.
+
+Currently, Doris supports Ranger's library, table, and column permissions, but 
does not support encryption, row permissions, and so on.
+
+</version>
+
+
+### Environment configuration
+
+Connecting to Hive Metastore with Ranger permission verification enabled 
requires additional configuration&configuration environment:
+1. When creating a catalog, add:
+
+```sql
+"access_controller.properties.ranger.service.name" = "hive",
+"access_controller.class" = 
"org.apache.doris.catalog.authorizer.RangerHiveAccessControllerFactory",
+```
+2. Configure all FE environments:
+
+    1. Copy the configuration files ranger-live-audit.xml, 
ranger-live-security.xml, ranger-policymgr-ssl.xml under the HMS conf directory 
to<doris_ Home>/conf directory.
+
+    2. Modify the properties of ranger-live-security.xml. The reference 
configuration is as follows:
+
+    ```sql
+    <?xml version="1.0" encoding="UTF-8"?>
+    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+    <configuration>
+        #The directory for caching permission data, needs to be writable
+        <property>
+            <name>ranger.plugin.hive.policy.cache.dir</name>
+            <value>/mnt/datadisk0/zhangdong/rangerdata</value>
+        </property>
+        #The time interval for periodically pulling permission data
+        <property>
+            <name>ranger.plugin.hive.policy.pollIntervalMs</name>
+            <value>30000</value>
+        </property>
+    
+        <property>
+            
<name>ranger.plugin.hive.policy.rest.client.connection.timeoutMs</name>
+            <value>60000</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.rest.client.read.timeoutMs</name>
+            <value>60000</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.rest.ssl.config.file</name>
+            <value></value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.rest.url</name>
+            <value>http://172.21.0.32:6080</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.source.impl</name>
+            <value>org.apache.ranger.admin.client.RangerAdminRESTClient</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.service.name</name>
+            <value>hive</value>
+        </property>
+    
+        <property>
+            <name>xasecure.hive.update.xapolicies.on.grant.revoke</name>
+            <value>true</value>
+        </property>
+    
+    </configuration>
+    ```
+    3. To obtain the log of Ranger authentication itself, you can click<doris_ 
Add the configuration file log4j.properties under the home>/conf directory.
+
+    4. Restart FE.
+
+### Best Practices
+
+1.Create user user1 on the ranger side and authorize the query permission of 
db1.table1.col1 
+
+2.Create the role role1 on the ranger side and authorize the query permission 
of db1.table1.col2
+
+3.Create user user1 with the same name in Doris, and user1 will directly have 
the query permission of db1.table1.col1
+
+4.Create the role role1 with the same name in Doris and assign role1 to user1. 
User1 will have query permissions for both db1.table1.col1 and col2
+
diff --git a/docs/zh-CN/docs/lakehouse/multi-catalog/hive.md 
b/docs/zh-CN/docs/lakehouse/multi-catalog/hive.md
index 89334a1272..db90f24435 100644
--- a/docs/zh-CN/docs/lakehouse/multi-catalog/hive.md
+++ b/docs/zh-CN/docs/lakehouse/multi-catalog/hive.md
@@ -130,23 +130,6 @@ CREATE CATALOG hive PROPERTIES (
 );
 ```
 
-<version since="dev">
-
-连接开启 Ranger 权限校验的 Hive Metastore 需要增加配置 & 配置环境:
-1. 创建 Catalog 时增加:
-
-```sql
-"access_controller.properties.ranger.service.name" = "<the ranger servive name 
your hms using>",
-"access_controller.class" = 
"org.apache.doris.catalog.authorizer.RangerHiveAccessControllerFactory",
-```
-2. 配置所有 FE 环境: 
-   a. 将 HMS conf 目录下的三个 Ranger 配置文件Copy到 <doris_home>/conf 目录下
-   b. 修改其中 ranger-<ranger_service_name>-security.xml 的属性 
`ranger.plugin.hive.policy.cache.dir` 的值为一个可写目录
-   c. 为获取到 Ranger 鉴权本身的日志,可在 <doris_home>/conf 目录下添加配置文件 log4j.properties
-   d. 重启 FE
-
-</version>
-
 在 1.2.1 版本之后,我们也可以将这些信息通过创建一个 Resource 统一存储,然后在创建 Catalog 时使用这个 Resource。示例如下:
        
 ```sql
@@ -207,3 +190,98 @@ CREATE CATALOG hive PROPERTIES (
 | `map<KeyType, ValueType>` | `map<KeyType, ValueType>` | 暂不支持嵌套,KeyType 和 
ValueType 需要为基础类型 |
 | `struct<col1: Type1, col2: Type2, ...>` | `struct<col1: Type1, col2: Type2, 
...>` | 暂不支持嵌套,Type1, Type2, ... 需要为基础类型 |
 | other | unsupported | |
+
+## 使用Ranger进行权限校验
+
+<version since="dev">
+
+Apache Ranger是一个用来在Hadoop平台上进行监控,启用服务,以及全方位数据安全访问管理的安全框架。
+
+目前doris支持ranger的库、表、列权限,不支持加密、行权限等。
+
+</version>
+
+### 环境配置
+
+连接开启 Ranger 权限校验的 Hive Metastore 需要增加配置 & 配置环境:
+1. 创建 Catalog 时增加:
+
+```sql
+"access_controller.properties.ranger.service.name" = "hive",
+"access_controller.class" = 
"org.apache.doris.catalog.authorizer.RangerHiveAccessControllerFactory",
+```
+2. 配置所有 FE 环境:
+    
+   1. 将 HMS conf 
目录下的配置文件ranger-hive-audit.xml,ranger-hive-security.xml,ranger-policymgr-ssl.xml复制到
 <doris_home>/conf 目录下。
+
+   2. 修改 ranger-hive-security.xml 的属性,参考配置如下:
+
+    ```sql
+    <?xml version="1.0" encoding="UTF-8"?>
+    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+    <configuration>
+        #The directory for caching permission data, needs to be writable
+        <property>
+            <name>ranger.plugin.hive.policy.cache.dir</name>
+            <value>/mnt/datadisk0/zhangdong/rangerdata</value>
+        </property>
+        #The time interval for periodically pulling permission data
+        <property>
+            <name>ranger.plugin.hive.policy.pollIntervalMs</name>
+            <value>30000</value>
+        </property>
+    
+        <property>
+            
<name>ranger.plugin.hive.policy.rest.client.connection.timeoutMs</name>
+            <value>60000</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.rest.client.read.timeoutMs</name>
+            <value>60000</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.rest.ssl.config.file</name>
+            <value></value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.rest.url</name>
+            <value>http://172.21.0.32:6080</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.policy.source.impl</name>
+            <value>org.apache.ranger.admin.client.RangerAdminRESTClient</value>
+        </property>
+    
+        <property>
+            <name>ranger.plugin.hive.service.name</name>
+            <value>hive</value>
+        </property>
+    
+        <property>
+            <name>xasecure.hive.update.xapolicies.on.grant.revoke</name>
+            <value>true</value>
+        </property>
+    
+    </configuration>
+    ```
+   3. 为获取到 Ranger 鉴权本身的日志,可在 <doris_home>/conf 目录下添加配置文件 log4j.properties。
+
+   4. 重启 FE。
+
+### 最佳实践
+
+1.在ranger端创建用户user1并授权db1.table1.col1的查询权限
+
+2.在ranger端创建角色role1并授权db1.table1.col2的查询权限
+
+3.在doris创建同名用户user1,user1将直接拥有db1.table1.col1的查询权限
+
+4.在doris创建同名角色role1,并将role1分配给user1,user1将同时拥有db1.table1.col1和col2的查询权限
+
+
+
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to