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

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


The following commit(s) were added to refs/heads/master by this push:
     new e98446fa5 RANGER-5376:Add DataSetIds in the Ranger audit events for 
enabling searching with DataSet Ids (#713)
e98446fa5 is described below

commit e98446fa5e9278deb6c70ed17cf6b746df8edb07
Author: Ramesh <[email protected]>
AuthorDate: Thu Oct 23 16:16:07 2025 -0700

    RANGER-5376:Add DataSetIds in the Ranger audit events for enabling 
searching with DataSet Ids (#713)
    
    * RANGER-5376:Add DataSetIds in the Ranger audit events for enabling 
searching with DataSet Ids
    
    Signed-off-by: Ramesh Mani <[email protected]>
    
    * RANGER-5376:Add DataSetIds in the Ranger audit events for enabling 
searching with DataSet Ids - Addressed review comment by copilot
    
    * RANGER-5376:Add DataSetIds in the Ranger audit events for enabling 
searching with DataSet Ids - Addressed review comment by copilot change set #2
    
    ---------
    
    Signed-off-by: Ramesh Mani <[email protected]>
    Co-authored-by: Ramesh Mani <[email protected]>
---
 .../apache/ranger/audit/model/AuthzAuditEvent.java | 11 ++++
 .../audit/destination/SolrAuditDestination.java    |  1 +
 .../audit/provider/solr/SolrAuditProvider.java     |  1 +
 .../plugin/audit/RangerDefaultAuditHandler.java    |  7 ++
 .../plugin/policyengine/gds/GdsAccessResult.java   | 17 ++++-
 .../policyengine/gds/GdsDatasetEvaluator.java      |  1 +
 .../gds/test_gds_policy_hive_access.json           | 68 ++++++++++----------
 .../gds/test_gds_policy_hive_data_mask.json        | 74 +++++++++++-----------
 .../gds/test_gds_policy_hive_row_filter.json       | 74 +++++++++++-----------
 .../config/solr-ranger_audits/managed-schema       |  1 +
 .../conf/ranger_es_schema.json                     |  3 +
 .../solr_for_audit_setup/conf/managed-schema       |  1 +
 .../cloudwatch/CloudWatchAccessAuditsService.java  |  5 ++
 .../ElasticSearchAccessAuditsService.java          |  9 +++
 .../java/org/apache/ranger/rest/AssetREST.java     |  1 +
 .../ranger/solr/SolrAccessAuditsService.java       |  9 +++
 .../java/org/apache/ranger/view/VXAccessAudit.java | 11 ++++
 .../java/org/apache/ranger/rest/TestAssetREST.java |  4 +-
 18 files changed, 187 insertions(+), 111 deletions(-)

diff --git 
a/agents-audit/core/src/main/java/org/apache/ranger/audit/model/AuthzAuditEvent.java
 
b/agents-audit/core/src/main/java/org/apache/ranger/audit/model/AuthzAuditEvent.java
index 35ebd075e..9839fde3c 100644
--- 
a/agents-audit/core/src/main/java/org/apache/ranger/audit/model/AuthzAuditEvent.java
+++ 
b/agents-audit/core/src/main/java/org/apache/ranger/audit/model/AuthzAuditEvent.java
@@ -116,6 +116,9 @@ public class AuthzAuditEvent extends AuditEventBase {
     @JsonProperty("projects")
     protected Set<String> projects;
 
+    @JsonProperty("datasetIds")
+    protected Set<Long> datasetIds;
+
     @JsonProperty("additional_info")
     protected String additionalInfo;
 
@@ -469,6 +472,14 @@ public void setProjects(Set<String> projects) {
         this.projects = projects;
     }
 
+    public Set<Long> getDatasetIds() {
+        return datasetIds;
+    }
+
+    public void setDatasetIds(Set<Long> datasetIds) {
+        this.datasetIds = datasetIds;
+    }
+
     public String getClusterName() {
         return clusterName;
     }
diff --git 
a/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java
 
b/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java
index 17e57571a..cfe1a45ac 100644
--- 
a/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java
+++ 
b/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java
@@ -316,6 +316,7 @@ SolrInputDocument toSolrDoc(AuthzAuditEvent auditEvent) {
         doc.setField("tags", auditEvent.getTags());
         doc.addField("datasets", auditEvent.getDatasets());
         doc.addField("projects", auditEvent.getProjects());
+        doc.addField("datasetIds", auditEvent.getDatasetIds());
         doc.setField("cluster", auditEvent.getClusterName());
         doc.setField("zoneName", auditEvent.getZoneName());
         doc.setField("agentHost", auditEvent.getAgentHostname());
diff --git 
a/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
 
b/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
index ef0e210b8..e8472650a 100644
--- 
a/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
+++ 
b/agents-audit/dest-solr/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
@@ -295,6 +295,7 @@ SolrInputDocument toSolrDoc(AuthzAuditEvent auditEvent) {
         doc.addField("tags", auditEvent.getTags());
         doc.addField("datasets", auditEvent.getDatasets());
         doc.addField("projects", auditEvent.getProjects());
+        doc.addField("datasetIds", auditEvent.getDatasetIds());
         doc.addField("cluster", auditEvent.getClusterName());
         doc.addField("zone", auditEvent.getZoneName());
         doc.addField("agentHost", auditEvent.getAgentHostname());
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
index 04f9d95f0..90fda3d18 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java
@@ -137,6 +137,7 @@ public AuthzAuditEvent getAuthzEvents(RangerAccessResult 
result) {
 
             ret.setDatasets(getDatasets(request));
             ret.setProjects(getProjects(request));
+            ret.setDatasetIds(getDatasetIds(request));
             ret.setAdditionalInfo(getAdditionalInfo(request));
             ret.setClusterName(request.getClusterName());
             ret.setZoneName(result.getZoneName());
@@ -223,6 +224,12 @@ public final Set<String> getProjects(RangerAccessRequest 
request) {
         return gdsResult != null ? gdsResult.getProjects() : null;
     }
 
+    public final Set<Long> getDatasetIds(RangerAccessRequest request) {
+        GdsAccessResult gdsResult = 
RangerAccessRequestUtil.getGdsResultFromContext(request.getContext());
+
+        return gdsResult != null ? gdsResult.getDatasetIds() : null;
+    }
+
     public String getAdditionalInfo(RangerAccessRequest request) {
         if (StringUtils.isBlank(request.getRemoteIPAddress()) && 
CollectionUtils.isEmpty(request.getForwardedAddresses())) {
             return null;
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsAccessResult.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsAccessResult.java
index e2a07859e..b739f721d 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsAccessResult.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsAccessResult.java
@@ -35,6 +35,7 @@ public class GdsAccessResult {
     private List<String> rowFilters;
     private Set<String>  datasets;
     private Set<String>  projects;
+    private Set<Long>    datasetIds;
     private Set<String>  allowedByDatasets;
     private Set<String>  allowedByProjects;
 
@@ -113,6 +114,10 @@ public Set<String> getProjects() {
         return projects;
     }
 
+    public Set<Long> getDatasetIds() {
+        return datasetIds;
+    }
+
     public Set<String> getAllowedByDatasets() {
         return allowedByDatasets;
     }
@@ -137,6 +142,14 @@ public void addProject(String name) {
         projects.add(name);
     }
 
+    public void addDatasetId(Long id) {
+        if (datasetIds == null) {
+            datasetIds = new HashSet<>();
+        }
+
+        datasetIds.add(id);
+    }
+
     public void addAllowedByDataset(String name) {
         if (allowedByDatasets == null) {
             allowedByDatasets = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
@@ -155,7 +168,7 @@ public void addAllowedByProject(String name) {
 
     @Override
     public int hashCode() {
-        return Objects.hash(isAllowed, isAudited, policyId, policyVersion, 
maskType, maskedValue, maskCondition, rowFilters, datasets, projects, 
allowedByDatasets, allowedByProjects);
+        return Objects.hash(isAllowed, isAudited, policyId, policyVersion, 
maskType, maskedValue, maskCondition, rowFilters, datasets, projects, 
datasetIds, allowedByDatasets, allowedByProjects);
     }
 
     @Override
@@ -177,6 +190,7 @@ public boolean equals(Object obj) {
                     Objects.equals(rowFilters, other.rowFilters) &&
                     Objects.equals(datasets, other.datasets) &&
                     Objects.equals(projects, other.projects) &&
+                    Objects.equals(datasetIds, other.datasetIds) &&
                     Objects.equals(allowedByDatasets, other.allowedByDatasets) 
&&
                     Objects.equals(allowedByProjects, other.allowedByProjects);
         }
@@ -203,6 +217,7 @@ public StringBuilder toString(StringBuilder sb) {
         sb.append(", rowFilters={").append(rowFilters).append("}");
         sb.append(", datasets={").append(datasets).append("}");
         sb.append(", projects={").append(projects).append("}");
+        sb.append(", datasetIds={").append(datasetIds).append("}");
         sb.append(", 
allowedByDatasets={").append(allowedByDatasets).append("}");
         sb.append(", 
allowedByProjects={").append(allowedByProjects).append("}");
         sb.append("}");
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsDatasetEvaluator.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsDatasetEvaluator.java
index 9bdff2ce9..789dd83ab 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsDatasetEvaluator.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsDatasetEvaluator.java
@@ -111,6 +111,7 @@ public void evaluate(RangerAccessRequest request, 
GdsAccessResult result, Collec
 
         if (isActive()) {
             result.addDataset(getName());
+            result.addDatasetId(getId());
 
             if (!policyEvaluators.isEmpty()) {
                 GdsDatasetAccessRequest datasetRequest = new 
GdsDatasetAccessRequest(getId(), gdsServiceDef, request);
diff --git 
a/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_access.json
 
b/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_access.json
index 1f0ea2eb6..c10eb8196 100644
--- 
a/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_access.json
+++ 
b/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_access.json
@@ -13,7 +13,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "column: sales.prospects.channel, user: ds-user, access: 
select",
@@ -21,7 +21,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects", "column": "channel" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: sales.orders, user: ds-user, access: select",
@@ -29,7 +29,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "database: sales, user: ds-user, access: _any",
@@ -37,7 +37,7 @@
         "resource":   { "elements": { "database": "sales" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: finance.invoices, user: ds-user, access: select",
@@ -45,7 +45,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: finance.invoices, user: ds1-user, access: select",
@@ -53,7 +53,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds1-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: finance.invoices, user: ds2-user, access: select",
@@ -61,7 +61,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds2-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-2" ], 
"isAllowed": true, "isAudited": true, "policyId": 2002 }
     },
     {
       "name":    "table: finance.payments, user: ds-user, access: select",
@@ -69,7 +69,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "database: finance, user: ds-user, access: _any",
@@ -77,7 +77,7 @@
         "resource":   { "elements": { "database": "finance" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: shipping.shipments, user: ds-user, access: select",
@@ -85,7 +85,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-2" ], "isAllowed": true, "isAudited": true, 
"policyId": 2002 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002 }
     },
     {
       "name":    "database: shipping, user: ds-user, access: _any",
@@ -93,7 +93,7 @@
         "resource":   { "elements": { "database": "shipping" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-2" ], "isAllowed": true, "isAudited": true, 
"policyId": 2002 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002 }
     },
     {
       "name":    "table: customers.contact_info, user: ds-user, access: 
select",
@@ -101,7 +101,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003 }
     },
     {
       "name":    "table: customers.contact_info, user: ds3-user, access: 
select",
@@ -109,7 +109,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds3-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3" ], "isAllowed": 
true, "isAudited": true, "policyId": 2003 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3" ], "isAllowed": true, "isAudited": true, "policyId": 2003 }
     },
     {
       "name":    "table: customers.contact_info, user: ds6-user, access: 
select",
@@ -117,7 +117,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds6-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-6" ], "isAllowed": 
true, "isAudited": true, "policyId": 2006 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "datasetIds": [ 3, 6 ], 
"allowedByDatasets": [ "dataset-6" ], "isAllowed": true, "isAudited": true, 
"policyId": 2006 }
     },
     {
       "name":    "database: customers, user: ds-user, access: _any",
@@ -125,7 +125,7 @@
         "resource":   { "elements": { "database": "customers" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003 }
     },
     {
       "name":    "table: operations.facilities, user: ds-user, access: select",
@@ -133,7 +133,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, 
"allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": true, 
"policyId": 2004 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": 
true, "policyId": 2004 }
     },
     {
       "name":    "database: operations, user: ds-user, access: _any",
@@ -141,7 +141,7 @@
         "resource":   { "elements": { "database": "operations" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, 
"allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": true, 
"policyId": 2004 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": 
true, "policyId": 2004 }
     },
 
 
@@ -151,7 +151,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: sales.orders, user: proj-user, access: select",
@@ -159,7 +159,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: finance.invoices, user: proj-user, access: select",
@@ -167,7 +167,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByProjects": [ "project-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: finance.payments, user: proj-user, access: select",
@@ -175,7 +175,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByProjects": [ "project-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: shipping.shipments, user: proj-user, access: select",
@@ -183,7 +183,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: customers.contact_info, user: proj-user, access: 
select",
@@ -191,7 +191,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-2", "project-4" ], 
"isAllowed": true, "isAudited": true, "policyId": 3002 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-2", "project-4" ], "isAllowed": true, "isAudited": true, "policyId": 
3002 }
     },
     {
       "name":    "table: customers.contact_info, user: proj2-user, access: 
select",
@@ -199,7 +199,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj2-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 3002 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-2" ], "isAllowed": true, "isAudited": true, "policyId": 3002 }
     },
     {
       "name":    "table: customers.contact_info, user: proj4-user, access: 
select",
@@ -207,7 +207,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj4-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-4" ], "isAllowed": 
true, "isAudited": true, "policyId": 3004 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-4" ], "isAllowed": true, "isAudited": true, "policyId": 3004 }
     },
     {
       "name":    "table: operations.facilities, user: proj-user, access: 
select",
@@ -215,7 +215,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
 
 
@@ -225,7 +225,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: sales.orders, user: scott, access: select",
@@ -233,7 +233,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: finance.invoices, user: scott, access: select",
@@ -241,7 +241,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "isAllowed": false, "isAudited": true, 
"policyId": -1 }
     },
     {
       "name":    "table: finance.payments, user: scott, access: select",
@@ -249,7 +249,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "isAllowed": false, "isAudited": true, 
"policyId": -1 }
     },
     {
       "name":    "table: shipping.shipments, user: scott, access: select",
@@ -257,7 +257,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: customers.contact_info, user: scott, access: select",
@@ -265,7 +265,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "isAllowed": false, "isAudited": true, "policyId": 
-1 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "isAllowed": false, 
"isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: operations.facilities, user: scott, access: select",
@@ -273,7 +273,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     
 
@@ -283,7 +283,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
 
     {
diff --git 
a/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_data_mask.json
 
b/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_data_mask.json
index 40aea708e..c172c0c14 100644
--- 
a/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_data_mask.json
+++ 
b/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_data_mask.json
@@ -13,7 +13,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "column: sales.prospects.channel, user: ds-user, access: 
select",
@@ -21,7 +21,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects", "column": "channel" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001, "maskType": "MASK_NULL" }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001, "maskType": "MASK_NULL" }
     },
     {
       "name":    "table: sales.orders, user: ds-user, access: select",
@@ -29,7 +29,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "column: sales.orders.amount, user: ds-user, access: select",
@@ -37,7 +37,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders", 
"column": "amount" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001, "maskType": "CUSTOM", "maskedValue": "-1" }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001, "maskType": "CUSTOM", "maskedValue": "-1" }
     },
     {
       "name":    "database: sales, user: ds-user, access: _any",
@@ -45,7 +45,7 @@
         "resource":   { "elements": { "database": "sales" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: finance.invoices, user: ds-user, access: select",
@@ -53,7 +53,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "column: finance.invoices.amount, user: ds-user, access: 
select",
@@ -61,7 +61,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices", "column": "amount" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets":  [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001, "maskType": "CUSTOM", "maskedValue": 
"-1" }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets":  [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001, 
"maskType": "CUSTOM", "maskedValue": "-1" }
     },
     {
       "name":    "table: finance.invoices, user: ds1-user, access: select",
@@ -69,7 +69,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds1-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: finance.invoices, user: ds2-user, access: select",
@@ -77,7 +77,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds2-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-2" ], 
"isAllowed": true, "isAudited": true, "policyId": 2002 }
     },
     {
       "name":    "table: finance.payments, user: ds-user, access: select",
@@ -85,7 +85,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "column: finance.payments.amount, user: ds-user, access: 
select",
@@ -93,7 +93,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments", "column": "amount" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001, "maskType": "CUSTOM", "maskedValue": 
"-1" }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001, 
"maskType": "CUSTOM", "maskedValue": "-1" }
     },
     {
       "name":    "database: finance, user: ds-user, access: _any",
@@ -101,7 +101,7 @@
         "resource":   { "elements": { "database": "finance" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
     },
     {
       "name":    "table: shipping.shipments, user: ds-user, access: select",
@@ -109,7 +109,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-2" ], "isAllowed": true, "isAudited": true, 
"policyId": 2002 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002 }
     },
     {
       "name":    "database: shipping, user: ds-user, access: _any",
@@ -117,7 +117,7 @@
         "resource":   { "elements": { "database": "shipping" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-2" ], "isAllowed": true, "isAudited": true, 
"policyId": 2002 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002 }
     },
     {
       "name":    "table: customers.contact_info, user: ds-user, access: 
select",
@@ -125,7 +125,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003 }
     },
     {
       "name":    "table: customers.contact_info, user: ds3-user, access: 
select",
@@ -133,7 +133,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds3-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3" ], "isAllowed": 
true, "isAudited": true, "policyId": 2003 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3" ], "isAllowed": true, "isAudited": true, "policyId": 2003 }
     },
     {
       "name":    "table: customers.contact_info, user: ds6-user, access: 
select",
@@ -141,7 +141,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds6-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-6" ], "isAllowed": 
true, "isAudited": true, "policyId": 2006 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 2006 }
     },
     {
       "name":    "database: customers, user: ds-user, access: _any",
@@ -149,7 +149,7 @@
         "resource":   { "elements": { "database": "customers" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003 }
     },
     {
       "name":    "table: operations.facilities, user: ds-user, access: select",
@@ -157,7 +157,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, 
"allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": true, 
"policyId": 2004 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": 
true, "policyId": 2004 }
     },
     {
       "name":    "database: operations, user: ds-user, access: _any",
@@ -165,7 +165,7 @@
         "resource":   { "elements": { "database": "operations" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, 
"allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": true, 
"policyId": 2004 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": 
true, "policyId": 2004 }
     },
 
 
@@ -175,7 +175,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: sales.orders, user: proj-user, access: select",
@@ -183,7 +183,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: finance.invoices, user: proj-user, access: select",
@@ -191,7 +191,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByProjects": [ "project-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: finance.payments, user: proj-user, access: select",
@@ -199,7 +199,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByProjects": [ "project-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: shipping.shipments, user: proj-user, access: select",
@@ -207,7 +207,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001 }
     },
     {
       "name":    "table: customers.contact_info, user: proj-user, access: 
select",
@@ -215,7 +215,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-2", "project-4" ], 
"isAllowed": true, "isAudited": true, "policyId": 3002 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-2", "project-4" ], "isAllowed": true, "isAudited": true, "policyId": 
3002 }
     },
     {
       "name":    "table: customers.contact_info, user: proj2-user, access: 
select",
@@ -223,7 +223,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj2-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 3002 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-2" ], "isAllowed": true, "isAudited": true, "policyId": 3002 }
     },
     {
       "name":    "table: customers.contact_info, user: proj4-user, access: 
select",
@@ -231,7 +231,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj4-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-4" ], "isAllowed": 
true, "isAudited": true, "policyId": 3004 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-4" ], "isAllowed": true, "isAudited": true, "policyId": 3004 }
     },
     {
       "name":    "table: operations.facilities, user: proj-user, access: 
select",
@@ -239,7 +239,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
 
 
@@ -249,7 +249,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: sales.orders, user: scott, access: select",
@@ -257,7 +257,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: finance.invoices, user: scott, access: select",
@@ -265,7 +265,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "isAllowed": false, "isAudited": true, 
"policyId": -1 }
     },
     {
       "name":    "table: finance.payments, user: scott, access: select",
@@ -273,7 +273,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "isAllowed": false, "isAudited": true, 
"policyId": -1 }
     },
     {
       "name":    "table: shipping.shipments, user: scott, access: select",
@@ -281,7 +281,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: customers.contact_info, user: scott, access: select",
@@ -289,7 +289,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "isAllowed": false, "isAudited": true, "policyId": 
-1 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "isAllowed": false, 
"isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: operations.facilities, user: scott, access: select",
@@ -297,7 +297,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     
 
@@ -307,7 +307,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
 
     {
diff --git 
a/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_row_filter.json
 
b/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_row_filter.json
index 4dbc256e6..6e1b7e060 100644
--- 
a/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_row_filter.json
+++ 
b/agents-common/src/test/resources/policyengine/gds/test_gds_policy_hive_row_filter.json
@@ -13,7 +13,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001, "rowFilters": [ "created_time >= '2023-01-01' and 
created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets":  [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: sales.orders, user: ds-user, access: select",
@@ -21,7 +21,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001, "rowFilters": [ "created_time >= '2023-01-01' and 
created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "database: sales, user: ds-user, access: _any",
@@ -29,7 +29,7 @@
         "resource":   { "elements": { "database": "sales" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 2001, "rowFilters": null }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001, "rowFilters": null }
     },
     {
       "name":    "table: finance.invoices, user: ds-user, access: select",
@@ -37,7 +37,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001, 
"rowFilters": [ "created_time >= '2023-01-01' and created_time < '2024-01-01'" 
] }
     },
     {
       "name":    "table: finance.invoices, user: ds1-user, access: select",
@@ -45,7 +45,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds1-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 2001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 2001, "rowFilters": [ 
"created_time >= '2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: finance.invoices, user: ds2-user, access: select",
@@ -53,7 +53,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "ds2-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-2" ], 
"isAllowed": true, "isAudited": true, "policyId": 2002, "rowFilters": [ 
"created_time >= '2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: finance.payments, user: ds-user, access: select",
@@ -61,7 +61,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001, 
"rowFilters": [ "created_time >= '2023-01-01' and created_time < '2024-01-01'" 
] }
     },
     {
       "name":    "database: finance, user: ds-user, access: _any",
@@ -69,7 +69,7 @@
         "resource":   { "elements": { "database": "finance" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByDatasets": [ "dataset-1", "dataset-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 2001, "rowFilters": null }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByDatasets": [ "dataset-1", 
"dataset-2" ], "isAllowed": true, "isAudited": true, "policyId": 2001, 
"rowFilters": null }
     },
     {
       "name":    "table: shipping.shipments, user: ds-user, access: select",
@@ -77,7 +77,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-2" ], "isAllowed": true, "isAudited": true, 
"policyId": 2002, "rowFilters": [ "created_time >= '2023-01-01' and 
created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "database: shipping, user: ds-user, access: _any",
@@ -85,7 +85,7 @@
         "resource":   { "elements": { "database": "shipping" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByDatasets": [ "dataset-2" ], "isAllowed": true, "isAudited": true, 
"policyId": 2002, "rowFilters": null }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByDatasets": [ "dataset-2" ], "isAllowed": true, 
"isAudited": true, "policyId": 2002, "rowFilters": null }
     },
     {
       "name":    "table: customers.contact_info, user: ds-user, access: 
select",
@@ -93,7 +93,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003, "rowFilters": [ 
"created_time >= '2023-01-01' and created_time < '2024-01-01'", "country = 
'US'" ] }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003, "rowFilters": [ "created_time >= '2023-01-01' and created_time < 
'2024-01-01'", "country = 'US'" ] }
     },
     {
       "name":    "table: customers.contact_info, user: ds3-user, access: 
select",
@@ -101,7 +101,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds3-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3" ], "isAllowed": 
true, "isAudited": true, "policyId": 2003, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3" ], "isAllowed": true, "isAudited": true, "policyId": 2003, 
"rowFilters": [ "created_time >= '2023-01-01' and created_time < '2024-01-01'" 
] }
     },
     {
       "name":    "table: customers.contact_info, user: ds6-user, access: 
select",
@@ -109,7 +109,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "ds6-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-6" ], "isAllowed": 
true, "isAudited": true, "policyId": 2006, "rowFilters": [ "country = 'US'" ] }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 2006, 
"rowFilters": [ "country = 'US'" ] }
     },
     {
       "name":    "database: customers, user: ds-user, access: _any",
@@ -117,7 +117,7 @@
         "resource":   { "elements": { "database": "customers" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003, "rowFilters": null }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003, "rowFilters": null }
     },
 
     {
@@ -126,7 +126,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"shipping_address" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-6" ], "projects": [ "project-4" ], 
"allowedByDatasets": [ "dataset-6" ], "isAllowed": false, "isAudited": true, 
"policyId": 2006, "rowFilters": [ "country = 'US'" ] }
+      "result": { "datasets": [ "dataset-6" ], "projects": [ "project-4" ], 
"datasetIds": [ 6 ], "allowedByDatasets": [ "dataset-6" ], "isAllowed": false, 
"isAudited": true, "policyId": 2006, "rowFilters": [ "country = 'US'" ] }
     },
     {
       "name":    "table: customers.shipping_address, user: ds3-user, access: 
select",
@@ -134,7 +134,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"shipping_address" } },
         "accessType": "select", "user": "ds3-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-6" ], "projects": [ "project-4" ], 
"allowedByDatasets": null, "isAllowed": false, "isAudited": true, "policyId": 
-1, "rowFilters": null }
+      "result": { "datasets": [ "dataset-6" ], "projects": [ "project-4" ], 
"datasetIds": [ 6 ], "allowedByDatasets": null, "isAllowed": false, 
"isAudited": true, "policyId": -1, "rowFilters": null }
     },
     {
       "name":    "table: customers.shipping_address, user: ds6-user, access: 
select",
@@ -142,7 +142,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"shipping_address" } },
         "accessType": "select", "user": "ds6-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-6" ], "projects": [ "project-4" ], 
"allowedByDatasets": [ "dataset-6" ], "isAllowed": false, "isAudited": true, 
"policyId": 2006, "rowFilters": [ "country = 'US'" ] }
+      "result": { "datasets": [ "dataset-6" ], "projects": [ "project-4" ], 
"datasetIds": [ 6 ], "allowedByDatasets": [ "dataset-6" ], "isAllowed": false, 
"isAudited": true, "policyId": 2006, "rowFilters": [ "country = 'US'" ] }
     },
     {
       "name":    "database: customers, user: ds-user, access: _any",
@@ -150,7 +150,7 @@
         "resource":   { "elements": { "database": "customers" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByDatasets": [ "dataset-3", "dataset-6" ], 
"isAllowed": true, "isAudited": true, "policyId": 2003, "rowFilters": null }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByDatasets": [ 
"dataset-3", "dataset-6" ], "isAllowed": true, "isAudited": true, "policyId": 
2003, "rowFilters": null }
     },
 
 
@@ -160,7 +160,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, 
"allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": true, 
"policyId": 2004, "rowFilters": [ "country = 'US'" ] }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": 
true, "policyId": 2004, "rowFilters": [ "country = 'US'" ] }
     },
     {
       "name":    "database: operations, user: ds-user, access: _any",
@@ -168,7 +168,7 @@
         "resource":   { "elements": { "database": "operations" } },
         "accessType": "", "user": "ds-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, 
"allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": true, 
"policyId": 2004, "rowFilters": null }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "allowedByDatasets": [ "dataset-4" ], "isAllowed": true, "isAudited": 
true, "policyId": 2004, "rowFilters": null }
     },
 
 
@@ -178,7 +178,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001, "rowFilters": [ "created_time >= '2023-01-01' and 
created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: sales.orders, user: proj-user, access: select",
@@ -186,7 +186,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001, "rowFilters": [ "created_time >= '2023-01-01' and 
created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: finance.invoices, user: proj-user, access: select",
@@ -194,7 +194,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByProjects": [ "project-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 3001, "rowFilters": [ 
"created_time >= '2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: finance.payments, user: proj-user, access: select",
@@ -202,7 +202,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "allowedByProjects": [ "project-1" ], 
"isAllowed": true, "isAudited": true, "policyId": 3001, "rowFilters": [ 
"created_time >= '2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: shipping.shipments, user: proj-user, access: select",
@@ -210,7 +210,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"allowedByProjects": [ "project-1" ], "isAllowed": true, "isAudited": true, 
"policyId": 3001, "rowFilters": [ "created_time >= '2023-01-01' and 
created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "allowedByProjects": [ "project-1" ], "isAllowed": true, 
"isAudited": true, "policyId": 3001, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
     },
     {
       "name":    "table: customers.contact_info, user: proj-user, access: 
select",
@@ -218,7 +218,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-2", "project-4" ], 
"isAllowed": true, "isAudited": true, "policyId": 3002, "rowFilters": [ 
"created_time >= '2023-01-01' and created_time < '2024-01-01'", "country = 
'US'" ] }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-2", "project-4" ], "isAllowed": true, "isAudited": true, "policyId": 
3002, "rowFilters": [ "created_time >= '2023-01-01' and created_time < 
'2024-01-01'", "country = 'US'" ] }
     },
     {
       "name":    "table: customers.contact_info, user: proj2-user, access: 
select",
@@ -226,7 +226,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj2-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-2" ], "isAllowed": 
true, "isAudited": true, "policyId": 3002, "rowFilters": [ "created_time >= 
'2023-01-01' and created_time < '2024-01-01'" ] }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-2" ], "isAllowed": true, "isAudited": true, "policyId": 3002, 
"rowFilters": [ "created_time >= '2023-01-01' and created_time < '2024-01-01'" 
] }
     },
     {
       "name":    "table: customers.contact_info, user: proj4-user, access: 
select",
@@ -234,7 +234,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "proj4-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "allowedByProjects": [ "project-4" ], "isAllowed": 
true, "isAudited": true, "policyId": 3004, "rowFilters": [ "country = 'US'" ] }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "allowedByProjects": [ 
"project-4" ], "isAllowed": true, "isAudited": true, "policyId": 3004, 
"rowFilters": [ "country = 'US'" ] }
     },
     {
       "name":    "table: operations.facilities, user: proj-user, access: 
select",
@@ -242,7 +242,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "proj-user", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
 
 
@@ -252,7 +252,7 @@
         "resource":   { "elements": { "database": "sales", "table": 
"prospects" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: sales.orders, user: scott, access: select",
@@ -260,7 +260,7 @@
         "resource":   { "elements": { "database": "sales", "table": "orders" } 
},
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], 
"datasetIds": [ 1 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: finance.invoices, user: scott, access: select",
@@ -268,7 +268,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"invoices" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "isAllowed": false, "isAudited": true, 
"policyId": -1 }
     },
     {
       "name":    "table: finance.payments, user: scott, access: select",
@@ -276,7 +276,7 @@
         "resource":   { "elements": { "database": "finance", "table": 
"payments" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ 
"project-1" ], "datasetIds": [ 1, 2 ], "isAllowed": false, "isAudited": true, 
"policyId": -1 }
     },
     {
       "name":    "table: shipping.shipments, user: scott, access: select",
@@ -284,7 +284,7 @@
         "resource":   { "elements": { "database": "shipping", "table": 
"shipments" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"isAllowed": false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], 
"datasetIds": [ 2 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: customers.contact_info, user: scott, access: select",
@@ -292,7 +292,7 @@
         "resource":   { "elements": { "database": "customers", "table": 
"contact_info" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "isAllowed": false, "isAudited": true, "policyId": 
-1 }
+      "result": { "datasets": [ "dataset-3", "dataset-6" ], "projects": [ 
"project-2", "project-4" ], "datasetIds": [ 3, 6 ], "isAllowed": false, 
"isAudited": true, "policyId": -1 }
     },
     {
       "name":    "table: operations.facilities, user: scott, access: select",
@@ -300,7 +300,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
     
 
@@ -310,7 +310,7 @@
         "resource":   { "elements": { "database": "operations", "table": 
"facilities" } },
         "accessType": "select", "user": "scott", "userGroups": []
       },
-      "result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": 
false, "isAudited": true, "policyId": -1 }
+      "result": { "datasets": [ "dataset-4" ], "projects": null, "datasetIds": 
[ 4 ], "isAllowed": false, "isAudited": true, "policyId": -1 }
     },
 
     {
diff --git a/dev-support/ranger-docker/config/solr-ranger_audits/managed-schema 
b/dev-support/ranger-docker/config/solr-ranger_audits/managed-schema
index df53a05df..eabb5f8fd 100644
--- a/dev-support/ranger-docker/config/solr-ranger_audits/managed-schema
+++ b/dev-support/ranger-docker/config/solr-ranger_audits/managed-schema
@@ -94,4 +94,5 @@
   <field name="policyVersion" type="tlong" multiValued="false"/>
   <field name="datasets" type="key_lower_case" multiValued="true"/>
   <field name="projects" type="key_lower_case" multiValued="true"/>
+  <field name="datasetIds" type="tlongs" multiValued="true" docValues="true"/>
 </schema>
diff --git 
a/security-admin/contrib/elasticsearch_for_audit_setup/conf/ranger_es_schema.json
 
b/security-admin/contrib/elasticsearch_for_audit_setup/conf/ranger_es_schema.json
index d90e18b7d..001ec75ce 100644
--- 
a/security-admin/contrib/elasticsearch_for_audit_setup/conf/ranger_es_schema.json
+++ 
b/security-admin/contrib/elasticsearch_for_audit_setup/conf/ranger_es_schema.json
@@ -117,6 +117,9 @@
     "projects": {
       "type": "keyword"
     },
+    "datasetIds": {
+      "type": "long"
+    },
     "text": {
       "type": "text"
     },
diff --git a/security-admin/contrib/solr_for_audit_setup/conf/managed-schema 
b/security-admin/contrib/solr_for_audit_setup/conf/managed-schema
index df53a05df..eabb5f8fd 100644
--- a/security-admin/contrib/solr_for_audit_setup/conf/managed-schema
+++ b/security-admin/contrib/solr_for_audit_setup/conf/managed-schema
@@ -94,4 +94,5 @@
   <field name="policyVersion" type="tlong" multiValued="false"/>
   <field name="datasets" type="key_lower_case" multiValued="true"/>
   <field name="projects" type="key_lower_case" multiValued="true"/>
+  <field name="datasetIds" type="tlongs" multiValued="true" docValues="true"/>
 </schema>
diff --git 
a/security-admin/src/main/java/org/apache/ranger/amazon/cloudwatch/CloudWatchAccessAuditsService.java
 
b/security-admin/src/main/java/org/apache/ranger/amazon/cloudwatch/CloudWatchAccessAuditsService.java
index 41d7121dd..663448c86 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/amazon/cloudwatch/CloudWatchAccessAuditsService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/amazon/cloudwatch/CloudWatchAccessAuditsService.java
@@ -287,6 +287,11 @@ private VXAccessAudit populateViewBean(AuthzAuditEvent 
auditEvent) {
             accessAudit.setProjects(value.toString());
         }
 
+        value = auditEvent.getDatasetIds();
+        if (value != null) {
+            accessAudit.setDatasetIds(value.toString());
+        }
+
         return accessAudit;
     }
 }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
 
b/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
index 502e2388d..982c78bb0 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
@@ -333,6 +333,15 @@ private VXAccessAudit populateViewBean(GetResponse doc) {
             }
         }
 
+        value = source.get("datasetIds");
+        if (value != null) {
+            try {
+                
accessAudit.setDatasetIds(JsonUtilsV2.nonSerializableObjToJson(value));
+            } catch (Exception e) {
+                LOGGER.warn("Failed to convert datasetIds to json", e);
+            }
+        }
+
         return accessAudit;
     }
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java 
b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
index d3d0dde72..da12f21cf 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
@@ -570,6 +570,7 @@ public VXAccessAuditList getAccessLogs(@Context 
HttpServletRequest request, @Que
         searchUtil.extractString(request, searchCriteria, "agentHost", "Agent 
Host Name", StringUtil.VALIDATION_TEXT);
         searchUtil.extractString(request, searchCriteria, "eventId", "Event 
Id", null);
         searchUtil.extractString(request, searchCriteria, "datasets", 
"DataSets", null);
+        searchUtil.extractLong(request, searchCriteria, "datasetId", "Dataset 
Id");
 
         boolean      isKeyAdmin      = msBizUtil.isKeyAdmin();
         boolean      isAuditKeyAdmin = msBizUtil.isAuditKeyAdmin();
diff --git 
a/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
 
b/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
index f3d6fde87..3ad9b4a89 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
@@ -298,6 +298,15 @@ private VXAccessAudit populateViewBean(SolrDocument doc) {
             }
         }
 
+        value = doc.getFieldValue("datasetIds");
+        if (value != null) {
+            try {
+                
accessAudit.setDatasetIds(JsonUtilsV2.nonSerializableObjToJson(value));
+            } catch (Exception e) {
+                LOGGER.warn("Failed to convert datasetIds to json", e);
+            }
+        }
+
         return accessAudit;
     }
 }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/view/VXAccessAudit.java 
b/security-admin/src/main/java/org/apache/ranger/view/VXAccessAudit.java
index 49a4f8d39..1e3c27a63 100644
--- a/security-admin/src/main/java/org/apache/ranger/view/VXAccessAudit.java
+++ b/security-admin/src/main/java/org/apache/ranger/view/VXAccessAudit.java
@@ -141,6 +141,8 @@ public class VXAccessAudit extends VXDataObject implements 
java.io.Serializable
 
     protected String projects;
 
+    protected String datasetIds;
+
     protected String clusterName;
 
     // Security Zone
@@ -571,6 +573,14 @@ public void setProjects(String projects) {
         this.projects = projects;
     }
 
+    public String getDatasetIds() {
+        return datasetIds;
+    }
+
+    public void setDatasetIds(String datasetIds) {
+        this.datasetIds = datasetIds;
+    }
+
     /**
      * @return the clusterName
      */
@@ -626,6 +636,7 @@ public String toString() {
         str += "tags={" + tags + "}";
         str += "datasets={" + datasets + "}";
         str += "projects={" + projects + "}";
+        str += "datasetIds={" + datasetIds + "}";
         str += "clusterName={" + clusterName + "}";
         str += "zoneName={" + zoneName + "}";
         str += "agentHost={" + agentHost + "}";
diff --git 
a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java 
b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
index b651c02db..ba820e9a9 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
@@ -572,7 +572,7 @@ public void testGetAccessLogs() {
         Mockito.verify(searchUtil, 
Mockito.times(16)).extractString(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
         Mockito.verify(searchUtil, Mockito.times(4)).extractInt(Mockito.any(), 
Mockito.any(), Mockito.anyString(), Mockito.anyString());
         Mockito.verify(searchUtil, 
Mockito.times(2)).extractDate(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
-        Mockito.verify(searchUtil).extractLong(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString());
+        Mockito.verify(searchUtil, 
Mockito.times(2)).extractLong(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString());
         
Mockito.verify(searchUtil).extractStringList(Mockito.any(HttpServletRequest.class),
 (SearchCriteria) Mockito.any(), Mockito.eq("requestUser"), 
Mockito.eq("Users"), Mockito.eq("requestUser"), Mockito.any(), 
Mockito.eq(StringUtil.VALIDATION_TEXT));
         
Mockito.verify(searchUtil).extractStringList(Mockito.any(HttpServletRequest.class),
 (SearchCriteria) Mockito.any(), Mockito.eq("excludeUser"), Mockito.eq("Exclude 
Users"), Mockito.eq("-requestUser"), Mockito.any(), 
Mockito.eq(StringUtil.VALIDATION_TEXT));
         
Mockito.verify(searchUtil).extractStringList(Mockito.any(HttpServletRequest.class),
 (SearchCriteria) Mockito.any(), Mockito.eq("zoneName"), Mockito.eq("Zone Name 
List"), Mockito.eq("zoneName"), Mockito.eq(null), Mockito.eq(null));
@@ -607,7 +607,7 @@ public void testGetAccessLogsForKms() {
         Mockito.verify(searchUtil, 
Mockito.times(16)).extractString(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
         Mockito.verify(searchUtil, Mockito.times(4)).extractInt(Mockito.any(), 
Mockito.any(), Mockito.anyString(), Mockito.anyString());
         Mockito.verify(searchUtil, 
Mockito.times(2)).extractDate(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
-        Mockito.verify(searchUtil).extractLong(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString());
+        Mockito.verify(searchUtil, 
Mockito.times(2)).extractLong(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString());
         
Mockito.verify(searchUtil).extractStringList(Mockito.any(HttpServletRequest.class),
 (SearchCriteria) Mockito.any(), Mockito.eq("requestUser"), 
Mockito.eq("Users"), Mockito.eq("requestUser"), Mockito.any(), 
Mockito.eq(StringUtil.VALIDATION_TEXT));
         
Mockito.verify(searchUtil).extractStringList(Mockito.any(HttpServletRequest.class),
 (SearchCriteria) Mockito.any(), Mockito.eq("excludeUser"), Mockito.eq("Exclude 
Users"), Mockito.eq("-requestUser"), Mockito.any(), 
Mockito.eq(StringUtil.VALIDATION_TEXT));
         
Mockito.verify(searchUtil).extractStringList(Mockito.any(HttpServletRequest.class),
 (SearchCriteria) Mockito.any(), Mockito.eq("zoneName"), Mockito.eq("Zone Name 
List"), Mockito.eq("zoneName"), Mockito.eq(null), Mockito.eq(null));


Reply via email to