You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2023/04/10 02:05:02 UTC

[ranger] branch RANGER-3923 updated: RANGER-3923: added support for MariaDB

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

madhan pushed a commit to branch RANGER-3923
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/RANGER-3923 by this push:
     new 01ced14fc RANGER-3923: added support for MariaDB
01ced14fc is described below

commit 01ced14fced51979386957a62c245e5a5d871d91
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Sun Apr 9 16:42:48 2023 -0700

    RANGER-3923: added support for MariaDB
---
 .../org/apache/ranger/plugin/model/RangerGds.java  |  16 +-
 .../main/python/apache_ranger/model/ranger_gds.py  |   4 +-
 .../src/main/python/sample_gds_client.py           |   6 +-
 .../optimized/current/ranger_core_db_mysql.sql     | 171 +++++++++++++++++++++
 .../optimized/current/ranger_core_db_postgres.sql  |   4 +-
 .../org/apache/ranger/entity/XXGdsDataShare.java   |  14 +-
 .../apache/ranger/entity/XXGdsSharedResource.java  |  14 +-
 .../ranger/service/RangerGdsDataShareService.java  |   4 +-
 .../service/RangerGdsSharedResourceService.java    |   4 +-
 9 files changed, 204 insertions(+), 33 deletions(-)

diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
index 63e58411c..8cb4fdcd2 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
@@ -186,7 +186,7 @@ public class RangerGds {
         private List<RangerPrincipal>                     owners;
         private String                                    service;
         private String                                    zone;
-        private String                                    condition;
+        private String                                    conditionExpr;
         private Set<String>                               defaultAccessTypes;
         private Map<String, RangerPolicyItemDataMaskInfo> defaultMasks;
         private String                                    termsOfUse;
@@ -209,9 +209,9 @@ public class RangerGds {
 
         public void setZone(String zone) { this.zone = zone; }
 
-        public String getCondition() { return condition; }
+        public String getConditionExpr() { return conditionExpr; }
 
-        public void setCondition(String condition) { this.condition = condition; }
+        public void setConditionExpr(String conditionExpr) { this.conditionExpr = conditionExpr; }
 
         public Set<String> getDefaultAccessTypes() {
             return defaultAccessTypes;
@@ -243,7 +243,7 @@ public class RangerGds {
               .append("owners={").append(owners).append("} ")
               .append("service={").append(service).append("} ")
               .append("zone={").append(zone).append("} ")
-              .append("condition={").append(condition).append("} ")
+              .append("conditionExpr={").append(conditionExpr).append("} ")
               .append("defaultAccessTypes={").append(defaultAccessTypes).append("} ")
               .append("defaultMasks={").append(defaultMasks).append("} ")
               .append("termsOfUse={").append(termsOfUse).append("} ")
@@ -261,7 +261,7 @@ public class RangerGds {
         private Map<String, RangerPolicyResource>         resource;
         private List<String>                              subResourceNames;
         private String                                    resourceSignature;
-        private String                                    condition;
+        private String                                    conditionExpr;
         private Set<String>                               accessTypes;
         private RangerPolicyItemRowFilterInfo             rowFilter;
         private Map<String, RangerPolicyItemDataMaskInfo> subResourceMasks;
@@ -289,9 +289,9 @@ public class RangerGds {
 
         public void setResourceSignature(String resourceSignature) { this.resourceSignature = resourceSignature; }
 
-        public String getCondition() { return condition; }
+        public String getConditionExpr() { return conditionExpr; }
 
-        public void setCondition(String condition) { this.condition = condition; }
+        public void setConditionExpr(String conditionExpr) { this.conditionExpr = conditionExpr; }
 
         public Set<String> getAccessTypes() {
             return accessTypes;
@@ -323,7 +323,7 @@ public class RangerGds {
               .append("resource={").append(resource).append("} ")
               .append("subResourceNames={").append(subResourceNames).append("} ")
               .append("resourceSignature={").append(resourceSignature).append("} ")
-              .append("conditions={").append(condition).append("} ")
+              .append("conditionExpr={").append(conditionExpr).append("} ")
               .append("accessTypes={").append(accessTypes).append("} ")
               .append("rowFilterInfo={").append(rowFilter).append("} ")
               .append("subResourceMasks={").append(subResourceMasks).append("} ")
diff --git a/intg/src/main/python/apache_ranger/model/ranger_gds.py b/intg/src/main/python/apache_ranger/model/ranger_gds.py
index 37a508f84..7db5afbc7 100644
--- a/intg/src/main/python/apache_ranger/model/ranger_gds.py
+++ b/intg/src/main/python/apache_ranger/model/ranger_gds.py
@@ -121,7 +121,7 @@ class RangerDataShare(RangerGdsBaseModelObject):
         self.owners             = attrs.get('owners')
         self.service            = attrs.get('service')
         self.zone               = attrs.get('zone')
-        self.condition          = attrs.get('condition')
+        self.conditionExpr      = attrs.get('conditionExpr')
         self.defaultAccessTypes = attrs.get('defaultAccessTypes')
         self.defaultMasks       = attrs.get('defaultMasks')
         self.termsOfUse         = attrs.get('termsOfUse')
@@ -145,7 +145,7 @@ class RangerSharedResource(RangerBaseModelObject):
         self.resource          = attrs.get('resource')
         self.subResourceNames  = attrs.get('subResourceNames')
         self.resourceSignature = attrs.get('resourceSignature')
-        self.condition         = attrs.get('condition')
+        self.conditionExpr     = attrs.get('conditionExpr')
         self.accessTypes       = attrs.get('accessTypes')
         self.rowFilter         = attrs.get('rowFilter')
         self.subResourceMasks  = attrs.get('subResourceMasks')
diff --git a/ranger-examples/sample-client/src/main/python/sample_gds_client.py b/ranger-examples/sample-client/src/main/python/sample_gds_client.py
index 6facd4040..7967ef474 100644
--- a/ranger-examples/sample-client/src/main/python/sample_gds_client.py
+++ b/ranger-examples/sample-client/src/main/python/sample_gds_client.py
@@ -39,14 +39,14 @@ project_2 = RangerProject({ 'name': 'project-2', 'description': 'the second proj
 hive_share_1 = RangerDataShare({ 'name': 'datashare-1', 'description': 'the first datashare!', 'owners': [ { 'type': PrincipalType.USER, 'name': 'Sandy.Williams' } ], 'termsOfUse': None })
 hive_share_1.service            = 'dev_hive'
 hive_share_1.zone               = None
-hive_share_1.condition          = "HAS_TAG('SCAN_COMPLETE')"
+hive_share_1.conditionExpr      = "HAS_TAG('SCAN_COMPLETE')"
 hive_share_1.defaultAccessTypes = [ '_READ' ]
 hive_share_1.defaultMasks       = { 'HAS_TAG("PII")': { 'dataMaskType': 'MASK' } }
 
 hdfs_share_1 = RangerDataShare({ 'name': 'datashare-2', 'description': 'the second datashare!', 'owners': [ { 'type': PrincipalType.GROUP, 'name': 'finance' } ], 'termsOfUse': None })
 hdfs_share_1.service            = 'dev_hdfs'
 hdfs_share_1.zone               = None
-hdfs_share_1.condition          = "HAS_TAG('SCAN_COMPLETE')"
+hdfs_share_1.conditionExpr      = "HAS_TAG('SCAN_COMPLETE')"
 hdfs_share_1.defaultAccessTypes = [ '_READ' ]
 hdfs_share_1.defaultMasks       = None
 
@@ -78,7 +78,7 @@ print(f'  created data_share: {hdfs_share_1}')
 hive_resource_1 = RangerSharedResource({ 'dataShareId': hive_share_1.id, 'name': 'db1.tbl1' })
 hive_resource_1.resource         = { 'database': { 'values': ['db1'] }, 'table': { 'values': ['tbl1'] } }
 hive_resource_1.subResourceNames = [ 'col1', 'col2' ]
-hive_resource_1.condition        = "HAS_TAG('SCAN_COMPLETE') && !HAS_TAG('PII') && TAGS['DATA_QUALITY'].score > 0.8"
+hive_resource_1.conditionExpr    = "HAS_TAG('SCAN_COMPLETE') && !HAS_TAG('PII') && TAGS['DATA_QUALITY'].score > 0.8"
 hive_resource_1.accessTypes      = [ '_READ' ]
 hive_resource_1.rowFilter        = { 'filterExpr': "country = 'US'" }
 hive_resource_1.subResourceMasks = { 'col1': { 'dataMaskType': 'MASK' } }
diff --git a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
index 66ae5060a..0c4c7e8ff 100644
--- a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
+++ b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
@@ -90,6 +90,12 @@ DROP TABLE IF EXISTS `xa_access_audit`;
 DROP TABLE IF EXISTS `x_portal_user_role`;
 DROP TABLE IF EXISTS `x_portal_user`;
 DROP TABLE IF EXISTS `x_db_version_h`;
+DROP TABLE IF EXISTS `x_gds_dataset_in_project`;
+DROP TABLE IF EXISTS `x_gds_data_share_in_dataset`;
+DROP TABLE IF EXISTS `x_gds_shared_resource`;
+DROP TABLE IF EXISTS `x_gds_data_share`;
+DROP TABLE IF EXISTS `x_gds_dataset`;
+DROP TABLE IF EXISTS `x_gds_project`;
 
 CREATE TABLE `x_db_version_h`  (
         `id`				bigint NOT NULL auto_increment primary key,
@@ -1674,6 +1680,171 @@ CREATE TABLE `x_rms_mapping_provider` (
   UNIQUE KEY `x_rms_mapping_provider_UK_name` (`name`)
 );
 
+CREATE TABLE `x_gds_dataset` (
+    `id`              BIGINT(20)   NOT NULL AUTO_INCREMENT
+  , `guid`            VARCHAR(64)  NOT NULL
+  , `create_time`     TIMESTAMP    NULL     DEFAULT NULL
+  , `update_time`     TIMESTAMP    NULL     DEFAULT NULL
+  , `added_by_id`     BIGINT(20)   NULL     DEFAULT NULL
+  , `upd_by_id`       BIGINT(20)   NULL     DEFAULT NULL
+  , `version`         BIGINT(20)   NOT NULL DEFAULT 1
+  , `is_enabled`      TINYINT(1)   NOT NULL DEFAULT '1'
+  , `name`            VARCHAR(512) NOT NULL
+  , `description`     TEXT         NULL     DEFAULT NULL
+  , `owners`          TEXT         NOT NULL
+  , `acl`             TEXT         NULL     DEFAULT NULL
+  , `terms_of_use`    TEXT         NULL     DEFAULT NULL
+  , `options`         TEXT         NULL     DEFAULT NULL
+  , `additional_info` TEXT         NULL     DEFAULT NULL
+  , PRIMARY KEY(`id`)
+  , UNIQUE KEY `x_gds_dataset_UK_name`(`name`)
+  , CONSTRAINT `x_gds_dataset_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_dataset_FK_upd_by_id`   FOREIGN KEY(`upd_by_id`)   REFERENCES `x_portal_user`(`id`)
+);
+CREATE INDEX `x_gds_dataset_guid` ON `x_gds_dataset`(`guid`);
+
+CREATE TABLE `x_gds_project` (
+    `id`              BIGINT(20)   NOT NULL AUTO_INCREMENT
+  , `guid`            VARCHAR(64)  NOT NULL
+  , `create_time`     TIMESTAMP    NULL     DEFAULT NULL
+  , `update_time`     TIMESTAMP    NULL     DEFAULT NULL
+  , `added_by_id`     BIGINT(20)   NULL     DEFAULT NULL
+  , `upd_by_id`       BIGINT(20)   NULL     DEFAULT NULL
+  , `version`         BIGINT(20)   NOT NULL DEFAULT 1
+  , `is_enabled`      TINYINT(1)   NOT NULL DEFAULT '1'
+  , `name`            VARCHAR(512) NOT NULL
+  , `description`     TEXT         NULL     DEFAULT NULL
+  , `owners`          TEXT         NOT NULL
+  , `acl`             TEXT         NULL     DEFAULT NULL
+  , `terms_of_use`    TEXT         NULL     DEFAULT NULL
+  , `options`         TEXT         NULL     DEFAULT NULL
+  , `additional_info` TEXT         NULL     DEFAULT NULL
+  , PRIMARY KEY(`id`)
+  , UNIQUE KEY `x_gds_project_UK_name`(`name`)
+  , CONSTRAINT `x_gds_project_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_project_FK_upd_by_id`   FOREIGN KEY(`upd_by_id`)   REFERENCES `x_portal_user`(`id`)
+);
+CREATE INDEX `x_gds_project_guid` ON `x_gds_project`(`guid`);
+
+CREATE TABLE `x_gds_data_share`(
+    `id`                   BIGINT(20)   NOT NULL AUTO_INCREMENT
+  , `guid`                 VARCHAR(64)  NOT NULL
+  , `create_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `update_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `added_by_id`          BIGINT(20)   NULL     DEFAULT NULL
+  , `upd_by_id`            BIGINT(20)   NULL     DEFAULT NULL
+  , `version`              BIGINT(20)   NOT NULL DEFAULT 1
+  , `is_enabled`           TINYINT(1)   NOT NULL DEFAULT '1'
+  , `name`                 VARCHAR(512) NOT NULL
+  , `description`          TEXT         NULL     DEFAULT NULL
+  , `owners`               TEXT         NOT NULL
+  , `service_id`           BIGINT(20)   NOT NULL
+  , `zone_id`              BIGINT(20)   NOT NULL
+  , `condition_expr`       TEXT         NULL
+  , `default_access_types` TEXT         NULL
+  , `default_masks`        TEXT         NULL
+  , `terms_of_use`         TEXT         NULL     DEFAULT NULL
+  , `options`              TEXT         NULL     DEFAULT NULL
+  , `additional_info`      TEXT         NULL     DEFAULT NULL
+  , PRIMARY KEY(`id`)
+  , UNIQUE KEY `x_gds_data_share_UK_name`(`service_id`, `zone_id`, `name`)
+  , CONSTRAINT `x_gds_data_share_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_data_share_FK_upd_by_id`   FOREIGN KEY(`upd_by_id`)   REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_data_share_FK_service_id`  FOREIGN KEY(`service_id`)  REFERENCES `x_service`(`id`)
+  , CONSTRAINT `x_gds_data_share_FK_zone_id`     FOREIGN KEY(`zone_id`)     REFERENCES `x_security_zone`(`id`)
+);
+CREATE INDEX `x_gds_data_share_guid`       ON `x_gds_data_share`(`guid`);
+CREATE INDEX `x_gds_data_share_service_id` ON `x_gds_data_share`(`service_id`);
+CREATE INDEX `x_gds_data_share_zone_id`    ON `x_gds_data_share`(`zone_id`);
+
+CREATE TABLE `x_gds_shared_resource`(
+    `id`                   BIGINT(20)   NOT NULL AUTO_INCREMENT
+  , `guid`                 VARCHAR(64)  NOT NULL
+  , `create_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `update_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `added_by_id`          BIGINT(20)   NULL     DEFAULT NULL
+  , `upd_by_id`            BIGINT(20)   NULL     DEFAULT NULL
+  , `version`              BIGINT(20)   NOT NULL DEFAULT 1
+  , `is_enabled`           TINYINT(1)   NOT NULL DEFAULT '1'
+  , `name`                 VARCHAR(512) NOT NULL
+  , `description`          TEXT         NULL     DEFAULT NULL
+  , `data_share_id`        BIGINT(20)   NOT NULL
+  , `resource`             TEXT         NOT NULL
+  , `resource_signature`   VARCHAR(128) NOT NULL
+  , `sub_resource_names`   TEXT         NULL     DEFAULT NULL
+  , `condition_expr`       TEXT         NULL     DEFAULT NULL
+  , `access_types`         TEXT         NULL     DEFAULT NULL
+  , `row_filter`           TEXT         NULL     DEFAULT NULL
+  , `sub_resource_masks`   TEXT         NULL     DEFAULT NULL
+  , `profiles`             TEXT         NULL     DEFAULT NULL
+  , `options`              TEXT         NULL     DEFAULT NULL
+  , `additional_info`      TEXT         NULL     DEFAULT NULL
+  , PRIMARY KEY(`id`)
+  , UNIQUE KEY `x_gds_shared_resource_UK_name`(`data_share_id`, `name`)
+  , CONSTRAINT `x_gds_shared_resource_FK_added_by_id`   FOREIGN KEY(`added_by_id`)   REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_shared_resource_FK_upd_by_id`     FOREIGN KEY(`upd_by_id`)     REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_shared_resource_FK_data_share_id` FOREIGN KEY(`data_share_id`) REFERENCES `x_gds_data_share`(`id`)
+);
+CREATE INDEX `x_gds_shared_resource_guid`          ON `x_gds_shared_resource`(`guid`);
+CREATE INDEX `x_gds_shared_resource_data_share_id` ON `x_gds_shared_resource`(`data_share_id`);
+
+CREATE TABLE `x_gds_data_share_in_dataset`(
+    `id`                   BIGINT(20)   NOT NULL AUTO_INCREMENT
+  , `guid`                 VARCHAR(64)  NOT NULL
+  , `create_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `update_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `added_by_id`          BIGINT(20)   NULL     DEFAULT NULL
+  , `upd_by_id`            BIGINT(20)   NULL     DEFAULT NULL
+  , `version`              BIGINT(20)   NOT NULL DEFAULT 1
+  , `is_enabled`           TINYINT(1)   NOT NULL DEFAULT '1'
+  , `description`          TEXT         NULL     DEFAULT NULL
+  , `data_share_id`        BIGINT(20)   NOT NULL
+  , `dataset_id`           BIGINT(20)   NOT NULL
+  , `status`               SMALLINT     NOT NULL
+  , `validity_period`      TEXT         NULL     DEFAULT NULL
+  , `profiles`             TEXT         NULL     DEFAULT NULL
+  , `options`              TEXT         NULL     DEFAULT NULL
+  , `additional_info`      TEXT         NULL     DEFAULT NULL
+  , PRIMARY KEY(`id`)
+  , UNIQUE KEY `x_gds_dshid_UK_data_share_id_dataset_id` (`data_share_id`, `dataset_id`)
+  , CONSTRAINT `x_gds_dshid_FK_added_by_id`   FOREIGN KEY(`added_by_id`)   REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_dshid_FK_upd_by_id`     FOREIGN KEY(`upd_by_id`)     REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_dshid_FK_data_share_id` FOREIGN KEY(`data_share_id`) REFERENCES `x_gds_data_share`(`id`)
+  , CONSTRAINT `x_gds_dshid_FK_dataset_id`    FOREIGN KEY(`dataset_id`)    REFERENCES `x_gds_dataset`(`id`)
+);
+CREATE INDEX `x_gds_dshid_guid`                     ON `x_gds_data_share_in_dataset`(`guid`);
+CREATE INDEX `x_gds_dshid_data_share_id`            ON `x_gds_data_share_in_dataset`(`data_share_id`);
+CREATE INDEX `x_gds_dshid_dataset_id`               ON `x_gds_data_share_in_dataset`(`dataset_id`);
+CREATE INDEX `x_gds_dshid_data_share_id_dataset_id` ON `x_gds_data_share_in_dataset`(`data_share_id`, `dataset_id`);
+
+CREATE TABLE `x_gds_dataset_in_project`(
+    `id`                   BIGINT(20)   NOT NULL AUTO_INCREMENT
+  , `guid`                 VARCHAR(64)  NOT NULL
+  , `create_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `update_time`          TIMESTAMP    NULL     DEFAULT NULL
+  , `added_by_id`          BIGINT(20)   NULL     DEFAULT NULL
+  , `upd_by_id`            BIGINT(20)   NULL     DEFAULT NULL
+  , `version`              BIGINT(20)   NOT NULL DEFAULT 1
+  , `is_enabled`           TINYINT(1)   NOT NULL DEFAULT '1'
+  , `description`          TEXT         NULL     DEFAULT NULL
+  , `dataset_id`           BIGINT(20)   NOT NULL
+  , `project_id`           BIGINT(20)   NOT NULL
+  , `status`               SMALLINT     NOT NULL
+  , `validity_period`      TEXT         NULL     DEFAULT NULL
+  , `profiles`             TEXT         NULL     DEFAULT NULL
+  , `options`              TEXT         NULL     DEFAULT NULL
+  , `additional_info`      TEXT         NULL     DEFAULT NULL
+  , PRIMARY KEY(`id`)
+  , UNIQUE KEY `x_gds_dip_UK_data_share_id_dataset_id`(`dataset_id`, `project_id`)
+  , CONSTRAINT `x_gds_dip_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_dip_FK_upd_by_id`   FOREIGN KEY(`upd_by_id`)   REFERENCES `x_portal_user`(`id`)
+  , CONSTRAINT `x_gds_dip_FK_dataset_id`  FOREIGN KEY(`dataset_id`)  REFERENCES `x_gds_dataset`(`id`)
+  , CONSTRAINT `x_gds_dip_FK_project_id`  FOREIGN KEY(`project_id`)  REFERENCES `x_gds_project`(`id`)
+);
+CREATE INDEX `x_gds_dip_guid`       ON `x_gds_dataset_in_project`(`guid`);
+CREATE INDEX `x_gds_dip_dataset_id` ON `x_gds_dataset_in_project`(`dataset_id`);
+CREATE INDEX `x_gds_dip_project_id` ON `x_gds_dataset_in_project`(`project_id`);
+
 
 DELIMITER $$
 DROP PROCEDURE if exists insertRangerPrerequisiteEntries $$
diff --git a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
index 1fb994b72..fccffa0a2 100644
--- a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
+++ b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
@@ -1730,7 +1730,7 @@ CREATE TABLE x_gds_data_share(
   , owners               TEXT         NOT NULL
   , service_id           BIGINT       NOT NULL
   , zone_id              BIGINT       NOT NULL
-  , condition            TEXT         NULL
+  , condition_expr       TEXT         NULL
   , default_access_types TEXT         NULL
   , default_masks        TEXT         NULL
   , terms_of_use         TEXT         NULL     DEFAULT NULL
@@ -1764,7 +1764,7 @@ CREATE TABLE x_gds_shared_resource(
   , resource             TEXT         NOT NULL
   , resource_signature   VARCHAR(128) NOT NULL
   , sub_resource_names   TEXT         NULL     DEFAULT NULL
-  , condition            TEXT         NULL     DEFAULT NULL
+  , condition_expr       TEXT         NULL     DEFAULT NULL
   , access_types         TEXT         NULL     DEFAULT NULL
   , row_filter           TEXT         NULL     DEFAULT NULL
   , sub_resource_masks   TEXT         NULL     DEFAULT NULL
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShare.java b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShare.java
index bca7900c5..49dbac1ad 100644
--- a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShare.java
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsDataShare.java
@@ -64,8 +64,8 @@ public class XXGdsDataShare extends XXDBBase implements Serializable {
     @Column(name = "owners")
     protected String owners;
 
-    @Column(name = "condition")
-    protected String condition;
+    @Column(name = "condition_expr")
+    protected String conditionExpr;
 
     @Column(name = "default_access_types")
     protected String defaultAccessTypes;
@@ -121,9 +121,9 @@ public class XXGdsDataShare extends XXDBBase implements Serializable {
 
     public void setOwners(String owners) { this.owners = owners; }
 
-    public String getCondition() { return condition; }
+    public String getConditionExpr() { return conditionExpr; }
 
-    public void setCondition(String condition) { this.condition = condition; }
+    public void setConditionExpr(String conditionExpr) { this.conditionExpr = conditionExpr; }
 
     public String getDefaultAccessTypes() { return defaultAccessTypes; }
 
@@ -150,7 +150,7 @@ public class XXGdsDataShare extends XXDBBase implements Serializable {
 
     @Override
     public int hashCode() {
-        return Objects.hash(id, guid, version, isEnabled, serviceId, zoneId, name, description, owners, condition, defaultAccessTypes, defaultMasks, termsOfUse, options, additionalInfo);
+        return Objects.hash(id, guid, version, isEnabled, serviceId, zoneId, name, description, owners, conditionExpr, defaultAccessTypes, defaultMasks, termsOfUse, options, additionalInfo);
     }
 
     @Override
@@ -174,7 +174,7 @@ public class XXGdsDataShare extends XXDBBase implements Serializable {
                Objects.equals(name, other.name) &&
                Objects.equals(description, other.description) &&
                Objects.equals(owners, other.owners) &&
-               Objects.equals(condition, other.condition) &&
+               Objects.equals(conditionExpr, other.conditionExpr) &&
                Objects.equals(defaultAccessTypes, other.defaultAccessTypes) &&
                Objects.equals(defaultMasks, other.defaultMasks) &&
                Objects.equals(termsOfUse, other.termsOfUse) &&
@@ -199,7 +199,7 @@ public class XXGdsDataShare extends XXDBBase implements Serializable {
           .append("name={").append(name).append("} ")
           .append("description={").append(description).append("} ")
           .append("owners={").append(owners).append("} ")
-          .append("condition={").append(condition).append("} ")
+          .append("conditionExpr={").append(conditionExpr).append("} ")
           .append("defaultAccessTypes={").append(defaultAccessTypes).append("} ")
           .append("defaultMasks={").append(defaultMasks).append("} ")
           .append("termsOfUse={").append(termsOfUse).append("} ")
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsSharedResource.java b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsSharedResource.java
index 305034869..882cd4392 100644
--- a/security-admin/src/main/java/org/apache/ranger/entity/XXGdsSharedResource.java
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXGdsSharedResource.java
@@ -67,8 +67,8 @@ public class XXGdsSharedResource extends XXDBBase implements Serializable {
     @Column(name = "resource_signature")
     protected String resourceSignature;
 
-    @Column(name = "condition")
-    protected String condition;
+    @Column(name = "condition_expr")
+    protected String conditionExpr;
 
     @Column(name = "access_types")
     protected String accessTypes;
@@ -131,9 +131,9 @@ public class XXGdsSharedResource extends XXDBBase implements Serializable {
 
     public void setResourceSignature(String resourceSignature) { this.resourceSignature = resourceSignature; }
 
-    public String getCondition() { return condition; }
+    public String getConditionExpr() { return conditionExpr; }
 
-    public void setCondition(String condition) { this.condition = condition; }
+    public void setConditionExpr(String conditionExpr) { this.conditionExpr = conditionExpr; }
 
     public String getAccessTypes() { return accessTypes; }
 
@@ -164,7 +164,7 @@ public class XXGdsSharedResource extends XXDBBase implements Serializable {
 
     @Override
     public int hashCode() {
-        return Objects.hash(id, guid, version, isEnabled, name, description, dataShareId, resource, subResourceNames, resourceSignature, condition, accessTypes, rowFilter, subResourceMasks, profiles, options, additionalInfo);
+        return Objects.hash(id, guid, version, isEnabled, name, description, dataShareId, resource, subResourceNames, resourceSignature, conditionExpr, accessTypes, rowFilter, subResourceMasks, profiles, options, additionalInfo);
     }
 
     @Override
@@ -189,7 +189,7 @@ public class XXGdsSharedResource extends XXDBBase implements Serializable {
                Objects.equals(resource, other.resource) &&
                Objects.equals(subResourceNames, other.subResourceNames) &&
                Objects.equals(resourceSignature, other.resourceSignature) &&
-               Objects.equals(condition, other.condition) &&
+               Objects.equals(conditionExpr, other.conditionExpr) &&
                Objects.equals(accessTypes, other.accessTypes) &&
                Objects.equals(rowFilter, other.rowFilter) &&
                Objects.equals(subResourceMasks, other.subResourceMasks) &&
@@ -216,7 +216,7 @@ public class XXGdsSharedResource extends XXDBBase implements Serializable {
           .append("dataShareId={").append(dataShareId).append("} ")
           .append("resource={").append(resource).append("} ")
           .append("subResourceNames={").append(subResourceNames).append("} ")
-          .append("condition={").append(condition).append("} ")
+          .append("conditionExpr={").append(conditionExpr).append("} ")
           .append("accessTypes={").append(accessTypes).append("} ")
           .append("rowFilter={").append(rowFilter).append("} ")
           .append("subResourceMasks={").append(subResourceMasks).append("} ")
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareService.java
index 7053e9916..66818753b 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsDataShareService.java
@@ -224,7 +224,7 @@ public class RangerGdsDataShareService extends RangerGdsBaseModelService<XXGdsDa
         xObj.setOwners(JsonUtils.listToJson(vObj.getOwners()));
         xObj.setServiceId(xService.getId());
         xObj.setZoneId(zoneId);
-        xObj.setCondition(vObj.getCondition());
+        xObj.setConditionExpr(vObj.getConditionExpr());
         xObj.setDefaultAccessTypes(JsonUtils.objectToJson(vObj.getDefaultAccessTypes()));
         xObj.setDefaultMasks(JsonUtils.objectToJson(vObj.getDefaultMasks()));
         xObj.setTermsOfUse(vObj.getTermsOfUse());
@@ -250,7 +250,7 @@ public class RangerGdsDataShareService extends RangerGdsBaseModelService<XXGdsDa
         vObj.setOwners(JsonUtils.jsonToRangerPrincipalList(xObj.getOwners()));
         vObj.setService(serviceName);
         vObj.setZone(zoneName);
-        vObj.setCondition(xObj.getCondition());
+        vObj.setConditionExpr(xObj.getConditionExpr());
         vObj.setDefaultAccessTypes(JsonUtils.jsonToSetString(xObj.getDefaultAccessTypes()));
         vObj.setDefaultMasks(JsonUtils.jsonToMapMaskInfo(xObj.getDefaultMasks()));
         vObj.setTermsOfUse(xObj.getTermsOfUse());
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
index 857c41286..23cd355cc 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
@@ -194,7 +194,7 @@ public class RangerGdsSharedResourceService extends RangerGdsBaseModelService<XX
         xObj.setResource(JsonUtils.mapToJson(vObj.getResource()));
         xObj.setSubResourceNames(JsonUtils.listToJson(vObj.getSubResourceNames()));
         xObj.setResourceSignature(vObj.getResourceSignature());
-        xObj.setCondition(vObj.getCondition());
+        xObj.setConditionExpr(vObj.getConditionExpr());
         xObj.setAccessTypes(JsonUtils.objectToJson(vObj.getAccessTypes()));
         xObj.setRowFilter(JsonUtils.objectToJson(vObj.getRowFilter()));
         xObj.setSubResourceMasks(JsonUtils.objectToJson(vObj.getSubResourceMasks()));
@@ -216,7 +216,7 @@ public class RangerGdsSharedResourceService extends RangerGdsBaseModelService<XX
         vObj.setResource(JsonUtils.jsonToMapPolicyResource(xObj.getResource()));
         vObj.setSubResourceNames(JsonUtils.jsonToListString(xObj.getSubResourceNames()));
         vObj.setResourceSignature(xObj.getResourceSignature());
-        vObj.setCondition(xObj.getCondition());
+        vObj.setConditionExpr(xObj.getConditionExpr());
         vObj.setAccessTypes(JsonUtils.jsonToSetString(xObj.getAccessTypes()));
         vObj.setRowFilter(JsonUtils.jsonToObject(xObj.getRowFilter(), RangerPolicy.RangerPolicyItemRowFilterInfo.class));
         vObj.setSubResourceMasks(JsonUtils.jsonToMapMaskInfo(xObj.getSubResourceMasks()));