You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sr...@apache.org on 2016/10/27 19:22:23 UTC

sentry git commit: SENTRY-1313: Database prefix is not honoured when executing grant statement (Sravya Tirukkovalur, Reviewed by: Hao Hao and Alexander Kolbasov)

Repository: sentry
Updated Branches:
  refs/heads/master a43f7dff0 -> 44dc1598e


SENTRY-1313: Database prefix is not honoured when executing grant statement (Sravya Tirukkovalur, Reviewed by: Hao Hao and Alexander Kolbasov)

Change-Id: I7c39724cd8b8f89d96499fdaed70fffad75728aa


Project: http://git-wip-us.apache.org/repos/asf/sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/44dc1598
Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/44dc1598
Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/44dc1598

Branch: refs/heads/master
Commit: 44dc1598e5e6a98137a84b51005cafac36ad3272
Parents: a43f7df
Author: Sravya Tirukkovalur <sr...@apache.org>
Authored: Thu Oct 27 12:21:37 2016 -0700
Committer: Sravya Tirukkovalur <sr...@apache.org>
Committed: Thu Oct 27 12:21:37 2016 -0700

----------------------------------------------------------------------
 .../hive/SentryHiveAuthorizationTaskFactoryImpl.java     |  4 ++--
 .../hive/TestSentryHiveAuthorizationTaskFactory.java     | 11 +++++++++++
 .../tests/e2e/dbprovider/TestDatabaseProvider.java       |  2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sentry/blob/44dc1598/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
index 013d227..ceb3b17 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/SentryHiveAuthorizationTaskFactoryImpl.java
@@ -300,8 +300,8 @@ public class SentryHiveAuthorizationTaskFactoryImpl implements HiveAuthorization
           subject.setServer(true);
         } else if (astChild.getToken().getType() == HiveParser.TOK_TABLE_TYPE) {
           subject.setTable(true);
-          String[] qualified = BaseSemanticAnalyzer.getQualifiedTableName(gchild);
-          subject.setObject(qualified[1]);
+          String qualified = BaseSemanticAnalyzer.getUnescapedName(gchild);
+          subject.setObject(qualified);
         }
       for (int i = 1; i < astChild.getChildCount(); i++) {
         gchild = (ASTNode) astChild.getChild(i);

http://git-wip-us.apache.org/repos/asf/sentry/blob/44dc1598/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
index 4fcb71c..aed218e 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/TestSentryHiveAuthorizationTaskFactory.java
@@ -465,6 +465,17 @@ public class TestSentryHiveAuthorizationTaskFactory {
     Assert.assertEquals(SERVER, privilegeDesc.getObject());
   }
 
+  /*
+  Db prefix in grant
+   */
+  @Test
+  public void testDBPrefixInGrant() throws Exception {
+    DDLWork work = analyze(parse("GRANT " + ALL + " ON TABLE " + "db1." + TABLE
+            + " TO ROLE " + ROLE));
+    GrantDesc grantDesc = work.getGrantDesc();
+    Assert.assertEquals("Fully qualified table name in Grant statement is resolved incorrectly", "db1." + TABLE,
+            grantDesc.getPrivilegeSubjectDesc().getObject());
+  }
   private void expectSemanticException(String command, String msg) throws Exception {
     try {
       analyze(parse(command));

http://git-wip-us.apache.org/repos/asf/sentry/blob/44dc1598/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
----------------------------------------------------------------------
diff --git a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
index 438f87e..63b00e2 100644
--- a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
+++ b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestDatabaseProvider.java
@@ -2209,7 +2209,7 @@ public class TestDatabaseProvider extends AbstractTestWithStaticConfiguration {
     resultSet = statement.executeQuery("SHOW GRANT ROLE role1");
 
     while ( resultSet.next()) {
-      assertThat(resultSet.getString(1), equalToIgnoringCase("default"));//the value should be db1
+      assertThat(resultSet.getString(1), equalToIgnoringCase("db1"));//the value should be db1
       assertThat(resultSet.getString(2), equalToIgnoringCase("tab1"));
       assertThat(resultSet.getString(3), equalToIgnoringCase(""));//partition
       assertThat(resultSet.getString(4), equalToIgnoringCase(""));//column