0

我想为给定的数据库/表获取该数据库/表已被授予哨兵访问权限的组列表。

4

2 回答 2

1

文档中似乎没有用于此目的的 Sentry SHOW 命令。

这篇文建议您可以直接查询 Sentry 数据库(假设您使用的是 Sentry 服务,而不是策略文件)。

但是,目前没有命令显示组到角色的映射。做到这一点的唯一方法是连接到 Sentry 数据库并从数据库中的表中获取此信息。

如果您使用 CDH,您可以使用 Cloudera Manager 确定集群中的哪个节点正在运行 Sentry 数据库,导航到 Clusters > Sentry,然后单击 Sentry Server,然后单击 Configuration。在这里,您将找到正在使用的数据库类型(例如 MySQL、PostgreSQL、Oracle)、运行数据库的服务器、端口、数据库名称和用户。

您将需要 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";

但是,我自己没有尝试过这个查询。

于 2017-04-13T21:36:49.830 回答
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;
于 2020-08-27T23:33:35.273 回答