Support Questions

Find answers, ask questions, and share your expertise

How to find out the roles / groups assigned to a schema / DB in Hive

avatar
Explorer

Hi All,

 

I want to find out what are the roles / groups assigned to a DB / Schema in Hive, how I can get those details ? please suggest.

 

Thank you.

 

Regards,

PK

1 ACCEPTED SOLUTION

avatar
Expert Contributor

PK,

If you have access to the Sentry Store backend use a query like this:

 

SELECT
r.ROLE_NAME,
g.GROUP_NAME,
p.*,
FROM_UNIXTIME(p.CREATE_TIME / 1000) as CREATE_TIME_DATE
FROM
SENTRY_ROLE r
INNER JOIN SENTRY_ROLE_GROUP_MAP rgm ON r.ROLE_ID = rgm.ROLE_ID
INNER JOIN SENTRY_GROUP g ON g.GROUP_ID = rgm.GROUP_ID
INNER JOIN SENTRY_ROLE_DB_PRIVILEGE_MAP rpm ON r.ROLE_ID = rpm.ROLE_ID
INNER JOIN SENTRY_DB_PRIVILEGE p ON p.DB_PRIVILEGE_ID = rpm.DB_PRIVILEGE_ID;

 

Hope it helps,

-JMP

View solution in original post

7 REPLIES 7

avatar
Expert Contributor

What is the specific version of HDP /CDH / CDP ?

avatar
Explorer

CDH 6.3

avatar
Expert Contributor

Use the following command reference

These are to be executed from Hive Beeline to view Role Privileges and Assignments

> SHOW ROLES;
List available roles

> SHOW CURRENT ROLES;
List roles assigned to current user/group

> SHOW ROLE GRANT GROUP <GROUP NAME>;
Lists the roles that are assigned to the specified group.

> SHOW GRANT ROLE <ROLE>;
Lists the permissions that have been granted to the specified role.

>SHOW GRANT ROLE <role name> ON <object type> <object name>
Lists the permissions that a role has on an object.

avatar
Explorer

Hi,

 

Thank you for the reply, but if I know the role or group, I can easily get the details from above commands, but for a specific DB , if I want to  find out what are the roles assigned, is there a way to do it ? 

 

Assume, my schema name is schema1, how to find out the roles assigned to this schema ? 

 

Thank you.

 

Regards,

PK

avatar
Community Manager

@prakodi Has the reply helped resolve your issue? If so, please mark the appropriate reply as the solution, as it will make it easier for others to find the answer in the future. Thanks


Regards,

Diana Torres,
Community Moderator


Was your question answered? Make sure to mark the answer as the accepted solution.
If you find a reply useful, say thanks by clicking on the thumbs up button.
Learn more about the Cloudera Community:

avatar
Expert Contributor

PK,

If you have access to the Sentry Store backend use a query like this:

 

SELECT
r.ROLE_NAME,
g.GROUP_NAME,
p.*,
FROM_UNIXTIME(p.CREATE_TIME / 1000) as CREATE_TIME_DATE
FROM
SENTRY_ROLE r
INNER JOIN SENTRY_ROLE_GROUP_MAP rgm ON r.ROLE_ID = rgm.ROLE_ID
INNER JOIN SENTRY_GROUP g ON g.GROUP_ID = rgm.GROUP_ID
INNER JOIN SENTRY_ROLE_DB_PRIVILEGE_MAP rpm ON r.ROLE_ID = rpm.ROLE_ID
INNER JOIN SENTRY_DB_PRIVILEGE p ON p.DB_PRIVILEGE_ID = rpm.DB_PRIVILEGE_ID;

 

Hope it helps,

-JMP

avatar
Explorer

Thank you very much.

 

Regards,

PK