Skip to content

Commit e76f8f7

Browse files
bowenliang123pan3793
authored andcommitted
[KYUUBI #3217] [DOCS] Doc for using Marcos in row-level filter in Authz
### _Why are the changes needed?_ Support macros in Row-filter condition expression, introduced in Ranger 2.3 ([release notes](https://cwiki.apache.org/confluence/display/RANGER/Apache+Ranger+2.3.0+-+Release+Notes)), is an major feature to significantly simplify the row-filter condition expression in practice by replacing explicit condition query by using user/group's attributes. - [RANGER-3605](https://issues.apache.org/jira/browse/RANGER-3605) : Support macros in row-filter/condition expressions - [RANGER-3550](https://issues.apache.org/jira/browse/RANGER-3550) : support for using user/tag attributes in row-filter expressions and conditions Consider user liangtiancheng with attribute born_city = guangzhou, we can define the row filter condition with city='${{USER.born_city}}' with the macro feature. However, This feature implicit relies on an config named `ranger.plugin.spark.enable.implicit.userstore.enricher` and the default value false will prevent RangerUserStoreEnricher fetching user/group and their attributes. Macros in row-filter condition will fallback to null value (as lack of user attributes value in UserStore of auth context) in script transformation unexpectedly and imperceptibly. Improving doc of ranger-spark-security.xml to aware of this feature and related config. ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #3267 from bowenliang123/doc-ranger-macros. Closes #3217 aee4b20 [liangbowen] plain text a7ec3bc [liangbowen] update docs and clearify difference between ranger.plugin.hive.policy.cache.dir and ranger.plugin.spark.policy.cache.dir configs 4887bd1 [liangbowen] simplify with "row filter expressions" fa62402 [liangbowen] skip list items 9dd1cd4 [liangbowen] h5. Using Marcos in Row Level Filters 849bed5 [liangbowen] add docs for Additional configs for using Marcos in row-level filter Authored-by: liangbowen <liangbowen@gf.com.cn> Signed-off-by: Kent Yao <yao@apache.org>
1 parent 1e3dc52 commit e76f8f7

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

docs/security/authorization/spark/install.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,23 @@ for pointing to the right Ranger admin server.
7474

7575
</configuration>
7676
```
77+
##### Using Macros in Row Level Filters
78+
79+
Macros are now supported for using user/group/tag in row filter expressions, introduced in [Ranger 2.3](https://cwiki.apache.org/confluence/display/RANGER/Apache+Ranger+2.3.0+-+Release+Notes). This feature helps significantly simplify row filter expressions by using user/group/tag's attributes instead of explicit conditions. Considering a user with an attribute `born_city` of value `Guangzhou `, the row filter condition as `city='${{USER.born_city}}'` will be transformed to `city='Guangzhou'` in execution plan. More supported macros and usage refer to [RANGER-3605](https://issues.apache.org/jira/browse/RANGER-3605) and [RANGER-3550](https://issues.apache.org/jira/browse/RANGER-3550). Add the following configs to `ranger-spark-security.xml` to enable UserStore Enricher required by macros.
80+
81+
```xml
82+
<property>
83+
<name>ranger.plugin.spark.enable.implicit.userstore.enricher</name>
84+
<value>true</value>
85+
<description>Enable UserStoreEnricher for fetching user and group attributes if using macros or scripts in row-filters since Ranger 2.3</description>
86+
</property>
87+
88+
<property>
89+
<name>ranger.plugin.hive.policy.cache.dir</name>
90+
<value>./a ranger hive service name/policycache</value>
91+
<description>As Authz plugin reuses hive service def, a policy cache path is required for caching UserStore and Tags for "hive" service def, while "ranger.plugin.spark.policy.cache.dir config" is the path for caching policies in service. </description>
92+
</property>
93+
```
7794

7895
#### ranger-spark-audit.xml
7996

0 commit comments

Comments
 (0)