Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import org.apache.hadoop.hive.ql.ddl.DDLSemanticAnalyzerFactory.DDLType;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
import org.apache.hadoop.hive.ql.parse.HiveParser;
Expand All @@ -45,7 +47,8 @@ public void analyzeInternal(ASTNode root) throws SemanticException {
TableName tableName = getQualifiedTableName((ASTNode) root.getChild(0));
String propertyName = (root.getChildCount() > 1) ? unescapeSQLString(root.getChild(1).getText()) : null;

getTable(tableName); // validate that table exists
Table table = getTable(tableName);
inputs.add(new ReadEntity(table));

ShowTablePropertiesDesc desc = new ShowTablePropertiesDesc(ctx.getResFile().toString(), tableName, propertyName);
Task<DDLWork> task = TaskFactory.get(new DDLWork(getInputs(), getOutputs(), desc));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@
import org.apache.hadoop.hive.ql.ddl.table.partition.PartitionUtils;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
import org.apache.hadoop.hive.ql.parse.HiveParser;
import org.apache.hadoop.hive.ql.parse.HiveTableName;
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.session.SessionState;

Expand Down Expand Up @@ -68,9 +69,12 @@ public void analyzeInternal(ASTNode root) throws SemanticException {
}
}

Table table = getTable(dbName, tableNames, true);
inputs.add(new ReadEntity(table));

if (partitionSpec != null) {
// validate that partition exists
PartitionUtils.getPartition(db, getTable(HiveTableName.of(tableNames)), partitionSpec, true);
PartitionUtils.getPartition(db, table, partitionSpec, true);
}

ShowTableStatusDesc desc = new ShowTableStatusDesc(ctx.getResFile(), dbName, tableNames, partitionSpec);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--! qt:authorizer
set user.name=user1;

create table t_show_ext(i int);

grant all on table t_show_ext to user user2;
revoke select on table t_show_ext from user user2;

set user.name=user2;
show table extended like 't_show_ext';
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--! qt:authorizer
set user.name=user1;

create table t_show_props(i int);

grant all on table t_show_props to user user2;
revoke select on table t_show_props from user user2;

set user.name=user2;
show tblproperties t_show_props;
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
PREHOOK: query: create table t_show_ext(i int)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
PREHOOK: Output: default@t_show_ext
POSTHOOK: query: create table t_show_ext(i int)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
POSTHOOK: Output: default@t_show_ext
PREHOOK: query: grant all on table t_show_ext to user user2
PREHOOK: type: GRANT_PRIVILEGE
PREHOOK: Output: default@t_show_ext
POSTHOOK: query: grant all on table t_show_ext to user user2
POSTHOOK: type: GRANT_PRIVILEGE
POSTHOOK: Output: default@t_show_ext
PREHOOK: query: revoke select on table t_show_ext from user user2
PREHOOK: type: REVOKE_PRIVILEGE
PREHOOK: Output: default@t_show_ext
POSTHOOK: query: revoke select on table t_show_ext from user user2
POSTHOOK: type: REVOKE_PRIVILEGE
POSTHOOK: Output: default@t_show_ext
FAILED: HiveAccessControlException Permission denied: Principal [name=user2, type=USER] does not have following privileges for operation SHOW_TABLESTATUS [[SELECT] on Object [type=TABLE_OR_VIEW, name=hive.default.t_show_ext]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
PREHOOK: query: create table t_show_props(i int)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
PREHOOK: Output: default@t_show_props
POSTHOOK: query: create table t_show_props(i int)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
POSTHOOK: Output: default@t_show_props
PREHOOK: query: grant all on table t_show_props to user user2
PREHOOK: type: GRANT_PRIVILEGE
PREHOOK: Output: default@t_show_props
POSTHOOK: query: grant all on table t_show_props to user user2
POSTHOOK: type: GRANT_PRIVILEGE
POSTHOOK: Output: default@t_show_props
PREHOOK: query: revoke select on table t_show_props from user user2
PREHOOK: type: REVOKE_PRIVILEGE
PREHOOK: Output: default@t_show_props
POSTHOOK: query: revoke select on table t_show_props from user user2
POSTHOOK: type: REVOKE_PRIVILEGE
POSTHOOK: Output: default@t_show_props
FAILED: HiveAccessControlException Permission denied: Principal [name=user2, type=USER] does not have following privileges for operation SHOW_TBLPROPERTIES [[SELECT] on Object [type=TABLE_OR_VIEW, name=hive.default.t_show_props]]
Loading