tengqm commented on code in PR #6115:
URL: https://github.com/apache/gravitino/pull/6115#discussion_r1906178438


##########
docs/security/authorization-pushdown.md:
##########
@@ -55,4 +59,49 @@ authorization.ranger.service.name=hiveRepo
 Gravitino 0.8.0 only supports the authorization Apache Ranger Hive service , 
Apache Iceberg service and Apache Paimon Service. 
 Spark can use Kyuubi authorization plugin to access Gravitino's catalog. But 
the plugin can't support to update or delete data for Paimon catalog.
 More data source authorization is under development.
-:::
\ No newline at end of file
+:::
+
+### chain authorization plugin
+
+Gravitino supports chaining multiple authorization plugins to secure one 
catalog.
+The authorization plugin chain is defined in the `authorization.chain.plugins` 
property, with the plugin names separated by commas.
+When a user performs an authorization operation on data within a catalog, the 
chained plugin will apply the authorization rules for every plugin defined in 
the chain.
+
+In order to use the chained authorization plugin, you need to configure the 
following properties:
+
+| Property Name                                             | Description      
                                                                         | 
Default Value | Required                    | Since Version    |
+|-----------------------------------------------------------|-------------------------------------------------------------------------------------------|---------------|-----------------------------|------------------|
+| `authorization-provider`                                  | Providers to use 
to implement authorization plugin such as `chain`                        | 
(none)        | No                          | 0.8.0-incubating |
+| `authorization.chain.plugins`                             | The 
comma-separated list of plugin names, just like 
`${plugin-name1},${plugin-name2},...` | (none)        | Yes if you use chain 
plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.admin.url`     | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.service.type`  | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.service.name`  | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.username`      | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.password`      | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+
+:::caution
+The Gravitino chain authorization plugin only supports the Apache Ranger 
HadoopSQL Plugin and Apache Ranger HDFS Plugin.
+The properties of every chained plugin in the authorization should be 
configured with the `authorization.chain.${plugin-name}` as the prefix.
+:::
+
+#### Example of using the chain authorization Plugin
+
+Suppose you have an Apache Hive service in your datacenter and have created a 
`hiveRepo` in Apache Ranger to manage its permissions.
+The Apache Hive service will use HDFS to store its data. You have created a 
`hdfsRepo` in Apache Ranger to manage HDFS's permissions.

Review Comment:
   What does "You have created" mean?
   The four (sub-)sentences there are all assumptions?



##########
docs/security/authorization-pushdown.md:
##########
@@ -55,4 +59,49 @@ authorization.ranger.service.name=hiveRepo
 Gravitino 0.8.0 only supports the authorization Apache Ranger Hive service , 
Apache Iceberg service and Apache Paimon Service. 
 Spark can use Kyuubi authorization plugin to access Gravitino's catalog. But 
the plugin can't support to update or delete data for Paimon catalog.
 More data source authorization is under development.
-:::
\ No newline at end of file
+:::
+
+### chain authorization plugin
+
+Gravitino supports chaining multiple authorization plugins to secure one 
catalog.
+The authorization plugin chain is defined in the `authorization.chain.plugins` 
property, with the plugin names separated by commas.
+When a user performs an authorization operation on data within a catalog, the 
chained plugin will apply the authorization rules for every plugin defined in 
the chain.
+
+In order to use the chained authorization plugin, you need to configure the 
following properties:
+
+| Property Name                                             | Description      
                                                                         | 
Default Value | Required                    | Since Version    |
+|-----------------------------------------------------------|-------------------------------------------------------------------------------------------|---------------|-----------------------------|------------------|
+| `authorization-provider`                                  | Providers to use 
to implement authorization plugin such as `chain`                        | 
(none)        | No                          | 0.8.0-incubating |
+| `authorization.chain.plugins`                             | The 
comma-separated list of plugin names, just like 
`${plugin-name1},${plugin-name2},...` | (none)        | Yes if you use chain 
plugin | 0.8.0-incubating |

Review Comment:
   ```suggestion
   | `authorization.chain.plugins`                             | The 
comma-separated list of plugin names, like 
`${plugin-name1},${plugin-name2},...` | (none)        | Yes if you use chain 
plugin | 0.8.0-incubating |
   ```



##########
docs/security/authorization-pushdown.md:
##########
@@ -55,4 +59,49 @@ authorization.ranger.service.name=hiveRepo
 Gravitino 0.8.0 only supports the authorization Apache Ranger Hive service , 
Apache Iceberg service and Apache Paimon Service. 
 Spark can use Kyuubi authorization plugin to access Gravitino's catalog. But 
the plugin can't support to update or delete data for Paimon catalog.
 More data source authorization is under development.
-:::
\ No newline at end of file
+:::
+
+### chain authorization plugin
+
+Gravitino supports chaining multiple authorization plugins to secure one 
catalog.
+The authorization plugin chain is defined in the `authorization.chain.plugins` 
property, with the plugin names separated by commas.
+When a user performs an authorization operation on data within a catalog, the 
chained plugin will apply the authorization rules for every plugin defined in 
the chain.
+
+In order to use the chained authorization plugin, you need to configure the 
following properties:
+
+| Property Name                                             | Description      
                                                                         | 
Default Value | Required                    | Since Version    |
+|-----------------------------------------------------------|-------------------------------------------------------------------------------------------|---------------|-----------------------------|------------------|
+| `authorization-provider`                                  | Providers to use 
to implement authorization plugin such as `chain`                        | 
(none)        | No                          | 0.8.0-incubating |
+| `authorization.chain.plugins`                             | The 
comma-separated list of plugin names, just like 
`${plugin-name1},${plugin-name2},...` | (none)        | Yes if you use chain 
plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.admin.url`     | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.service.type`  | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.service.name`  | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.username`      | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+| `authorization.chain.${plugin-name}.ranger.password`      | The Ranger 
authorization plugin properties of the `${plugin-name}`                        
| (none)        | Yes if you use chain plugin | 0.8.0-incubating |
+
+:::caution
+The Gravitino chain authorization plugin only supports the Apache Ranger 
HadoopSQL Plugin and Apache Ranger HDFS Plugin.
+The properties of every chained plugin in the authorization should be 
configured with the `authorization.chain.${plugin-name}` as the prefix.

Review Comment:
   ```suggestion
   The properties of every chained authorization plugin should use 
`authorization.chain.${plugin-name}` as the prefix.
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to