Skip to main content
prakodi
Silver ⭐️⭐️⭐️
February 10, 2023
Solved

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

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

JoseManuel
Gold ⭐️
February 17, 2023

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

10 replies

JoseManuel
Gold ⭐️
Gold ⭐️
February 13, 2023

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

Translate
prakodi
prakodiAuthor
Silver ⭐️⭐️⭐️
February 14, 2023

CDH 6.3

Translate
JoseManuel
Gold ⭐️
Gold ⭐️
February 14, 2023

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.

Translate
prakodi
prakodiAuthor
Silver ⭐️⭐️⭐️
February 17, 2023

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

Translate
DianaTorres
Community Manager
Community Manager
February 17, 2023

@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

Translate
Regards, Diana Torres, Senior Community Moderator
JoseManuel
Gold ⭐️
Gold ⭐️
February 17, 2023

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

Translate
prakodi
prakodiAuthor
Silver ⭐️⭐️⭐️
February 17, 2023

Thank you very much.

 

Regards,

PK

Translate
CelsoC
Silver ⭐️
January 21, 2025

Hello @JoseManuel ,

Is there any possible query to have a similar result with Ranger (CDP 7.1.7 sp2)?

Regards,

Celso

Translate
DianaTorres
Community Manager
Community Manager
January 22, 2025

@CelsoC Welcome to the Cloudera Community!
As this is an older post, you would have a better chance of receiving a resolution by starting a new thread. This will also be an opportunity to provide details specific to your environment that could aid others in assisting you with a more accurate answer to your question. You can link this thread as a reference in your new post. Thanks.

Translate
Regards, Diana Torres, Senior Community Moderator
cdebernardi
Silver ⭐️⭐️
Silver ⭐️⭐️
January 22, 2025

I tested this in 7.1.9 SP1 CHF 4, with Postgres

cdebernardi_0-1737577164387.png

 

Translate