Refer to the org.apache.Hadoop.hive.ql.exec.DDLTask.roleDDL function, 
AuthorizationMode doesn't support  SHOW CURRENT ROLES statement
But AuthorizationModeV2 supports this:

private int roleDDLV2(RoleDDLDesc roleDDLDesc) throws HiveException, 
IOException {
…….
    case SHOW_CURRENT_ROLE:
      List<String> roleNames = authorizer.getCurrentRoleNames();
      writeListToFileAfterSort(roleNames, roleDDLDesc.getResFile());
      break;

But by default,hive uses AuthorizationMode (because the default value of 
hive.security.authorization.manager is 
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider,which
 means AuthorizationMode )
If you want to use AuthorizationModeV2,you must use another authorization class 
which implements the 
org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizerFactory 
interface but not the 
org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider 
interface
such as  
org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLPrivilegeType


发件人: Ravi Kumar [mailto:[email protected]]
发送时间: 2014年11月17日 21:51
收件人: [email protected]
主题: Show current roles failing on Apache hive 0.13.1

Hi All
I am trying to run ‘Show current roles’ on Apache hive 0.13.1 but getting 
following error,

hive> SHOW CURRENT ROLES;
Error in role operation show_current_role on role name null, error message 
Unkown role operation show_current_role
FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask


Can someone tell me whether this command is supported on apache Hive 0.13.1 or 
not. If it is supported the what could be the issue. Any pointer would be 
really helpful.

Thanks and regrads,
Ravi


DISCLAIMER ========== This e-mail may contain privileged and confidential 
information which is the property of Persistent Systems Ltd. It is intended 
only for the use of the individual or entity to which it is addressed. If you 
are not the intended recipient, you are not authorized to read, retain, copy, 
print, distribute or use this message. If you have received this communication 
in error, please notify the sender and delete all copies of this message. 
Persistent Systems Ltd. does not accept any liability for virus infected mails.

本电子邮件可能为保密文件。如果阁下非电子邮件所指定之收件人,谨请立即通知本人。敬请阁下不要使用、保存、复印、打印、散布本电子邮件及其内容,或将其用于其他任何目的或向任何人披露。谢谢您的合作!
 This communication is intended only for the addressee(s) and may contain 
information that is privileged and confidential. You are hereby notified that, 
if you are not an intended recipient listed above, or an authorized employee or 
agent of an addressee of this communication responsible for delivering e-mail 
messages to an intended recipient, any dissemination, distribution or 
reproduction of this communication (including any attachments hereto) is 
strictly prohibited. If you have received this communication in error, please 
notify us immediately by a reply e-mail addressed to the sender and permanently 
delete the original e-mail communication and any attachments from all storage 
devices without making or otherwise retaining a copy.

Reply via email to