Hi, Should the grant statement be this below?
GRANT INSERT ON TABLE table_priv1 TO user2; and not GRANT INSERT ON table_priv1 TO USER user2; Hope this helps. Regards, Bill On Wed, Jun 10, 2020 at 11:47 PM Nasrulla Khan Haris <nasrulla.k...@microsoft.com.invalid> wrote: > I did enable auth related configs in hive-site.xml as per below document. > > > > I tried this on Spark 2.4.4. Is it supported ? > > > https://cwiki.apache.org/confluence/display/Hive/Storage+Based+Authorization+in+the+Metastore+Server > > > > > > > > *From:* Nasrulla Khan Haris > *Sent:* Wednesday, June 10, 2020 5:55 PM > *To:* user@spark.apache.org > *Subject:* Does Spark SQL support GRANT/REVOKE operations on Tables? > > > > HI Spark users, > > > > I see REVOKE/GRANT operations In list of supported operations but when I > run the on a table. I see > > > > Error: org.apache.spark.sql.catalyst.parser.ParseException: > > Operation not allowed: GRANT(line 1, pos 0) > > > > > > == SQL == > > GRANT INSERT ON table_priv1 TO USER user2 > > ^^^ > > > > at > org.apache.spark.sql.catalyst.parser.ParserUtils$.operationNotAllowed(ParserUtils.scala:41) > > at > org.apache.spark.sql.execution.SparkSqlAstBuilder$$anonfun$visitFailNativeCommand$1.apply(SparkSqlParser.scala:1047) > > at > org.apache.spark.sql.execution.SparkSqlAstBuilder$$anonfun$visitFailNativeCommand$1.apply(SparkSqlParser.scala:1038) > > at > org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:108) > > at > org.apache.spark.sql.execution.SparkSqlAstBuilder.visitFailNativeCommand(SparkSqlParser.scala:1038) > > at > org.apache.spark.sql.execution.SparkSqlAstBuilder.visitFailNativeCommand(SparkSqlParser.scala:55) > > at > org.apache.spark.sql.catalyst.parser.SqlBaseParser$FailNativeCommandContext.accept(SqlBaseParser.java:782) > > at > org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18) > > at > org.apache.spark.sql.catalyst.parser.AstBuilder$$anonfun$visitSingleStatement$1.apply(AstBuilder.scala:72) > > at > org.apache.spark.sql.catalyst.parser.AstBuilder$$anonfun$visitSingleStatement$1.apply(AstBuilder.scala:72) > > at > org.apache.spark.sql.catalyst.parser.ParserUtils$.withOrigin(ParserUtils.scala:108) > > at > org.apache.spark.sql.catalyst.parser.AstBuilder.visitSingleStatement(AstBuilder.scala:71) > > at > org.apache.spark.sql.catalyst.parser.AbstractSqlParser$$anonfun$parsePlan$1.apply(ParseDriver.scala:70) > > at > org.apache.spark.sql.catalyst.parser.AbstractSqlParser$$anonfun$parsePlan$1.apply(ParseDriver.scala:69) > > at > org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:100) > > at > org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:48) > > at > org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(ParseDriver.scala:69) > > at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:642) > > ... 49 elided > > > > > > Error: org.apache.spark.sql.catalyst.parser.ParseException: > > mismatched input 'dir' expecting {'(', 'SELECT', 'FROM', 'ADD', 'DESC', > 'WITH', 'VALUES', 'CREATE', 'TABLE', 'INSERT', 'DELETE', 'DESCRIBE', > 'EXPLAIN', 'SHOW', 'USE', 'DROP', 'ALTER', 'MAP', 'SET', 'RESET', 'START', > 'COMMIT', 'ROLLBACK', 'REDUCE', 'REFRESH', 'CLEAR', 'CACHE', 'UNCACHE', > 'DFS', 'TRUNCATE', 'ANALYZE', 'LIST', 'REVOKE', 'GRANT', 'LOCK', > 'UNLOCK', 'MSCK', 'EXPORT', 'IMPORT', 'LOAD'}(line 1, pos 0) > > > > == SQL == > > > > > > > > Appreciate your response. > > > > Thanks, > > NKH >