Sentry : Spark-sql 读取hive数据 权限问题

 经测试Spark-sql 只支持Sentry表、库权限,不支持Sentry 对Hive列权限读的控制,设置列权限读,Spark-sql是无权限读取的

对hive表某一列有读权限设置

代码如下,jast_column用户有对hive表test的s2列读权限,这里使用spark1.6举例

val conf = new SparkConf().setAppName("test")
    val sc = new SparkContext(conf)
    val sqlContext = new HiveContext(sc)

    sqlContext.sql(
      """
        | select s2
        |   from test
        |  limit 10
      """.stripMargin).show()
 

Spark启动报错如下 

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=jast_column, access=READ_EXECUTE, inode="/user/hive/warehouse/test":hive:hive:drwxrwx--x

如果授权给jast_column 表的读权限就可以正常 返回

+-------+-------+
|     s1|     s2|
+-------+-------+
|      a|      b|
|      1|      2|
|      2|    333|
|test111|test000|
| test44| test55|
|test111|test000|
+-------+-------+

 

 

 

 

你可能感兴趣的:(sentry,spark)