我希望得到一个给定的数据库/表,这个数据库/表已被授予访问权限的组列表。
答案 0 :(得分:0)
在documentation中似乎没有用于此目的的Sentry SHOW命令。
此blog post表示您可以直接查询Sentry数据库(假设您使用的是Sentry服务,而不是策略文件)。
但是,目前没有命令显示该组的角色 映射。唯一的方法是连接到Sentry 数据库并从中获取此信息 数据库中。
如果您正在使用CDH,则可以确定群集中的哪个节点 使用Cloudera Manager运行Sentry数据库,导航到 集群> Sentry,然后单击Sentry Server然后 组态。在这里,您将找到正在使用的数据库类型 (例如MySQL,PostgreSQL,Oracle),数据库运行的服务器 on,它的端口,数据库名称和用户。
您将需要Sentry数据库密码 - 博客文章提供了在您不知道的情况下检索它的建议。
给出了PostgreSQL数据库的示例查询:
SELECT "SENTRY_ROLE"."ROLE_NAME","SENTRY_GROUP"."GROUP_NAME"
FROM "SENTRY_ROLE_GROUP_MAP"
JOIN "SENTRY_ROLE" ON "SENTRY_ROLE"."ROLE_ID"="SENTRY_ROLE_GROUP_MAP"."ROLE_ID"
JOIN "SENTRY_GROUP" ON "SENTRY_GROUP"."GROUP_ID"="SENTRY_ROLE_GROUP_MAP"."GROUP_ID";
但是,我自己没有尝试过这个问题。
答案 1 :(得分:0)
这应该适用于MySQL:
SELECT R.ROLE_NAME, G.GROUP_NAME
FROM SENTRY_ROLE_GROUP_MAP RGM
JOIN SENTRY_ROLE R ON R.ROLE_ID=RGM.ROLE_ID
JOIN SENTRY_GROUP G ON G.GROUP_ID=RGM.GROUP_ID;