如何获取dm_acl中同时授予相同权限的对象
how to fetch the objects in dm_acl who grants the same sets of permission at the same time
我正在做一个连接到 Documentum
数据源的 JavaFx
项目。可以说我有一组组: group1 , group2 , group3
我如何查询 dm_acl
中的所有 acl_names
谁拥有 only and exactly
这些组作为他们的 r_acceesor_name
。例如,使用以下查询我可以获得特定 acl 的 r_accessor_name:
select r_acceessor_name from dm_acl where object_name = 'My_acl_name' enable (row_based)
输出为:
group1
group2
group3
但我想做的是相反的事情。我尝试了以下查询:
select object_name from dm_acl where r_accessor_name = 'group1' or r_accessor_name = 'group2' or r_accessor_name = 'group3' enable (row_based)
但是输出的问题是它太笼统了,因为关键字 OR
然后我试了这个:
select object_name from dm_acl where r_accessor_name = 'group1' and r_accessor_name = 'group2' and r_accessor_name = 'group3' enable (row_based)
太具体了 ==> 零输出
你比你想象的更困惑自己。
每个 ACL 对象至少有两个条目:dm_owner
和 dm_world
,其中第一个代表存储库所有者,最后一个代表存储库中的每个用户。
因为你的 objective
...来自 dm_acl
的所有 acl_names
只有 并且恰好 这些组 ...
无法实现。
但是,除此之外,您的查询
SELECT object_name FROM dm_acl
WHERE r_accessor_name = 'group1'
AND r_accessor_name = 'group2'
AND r_accessor_name = 'group3'
ENABLE (ROW_BASED)
是你能得到的最好的。您的问题是您的存储库中确实没有至少包含这 3 个组的 ACL。这会引出您最初的问题:要么您做出了错误的假设,要么您试图过多地概括您的问题,以至于您忽略了其中的重要部分。 ;)
我想我读懂了你的想法并得出了你真正需要的东西:
SELECT object_name FROM dm_acl
WHERE r_accessor_name IN ('group_A', 'group_B', 'group_C')
GROUP BY object_name
HAVING COUNT(DISTINCT r_accessor_name) = 2
ENABLE (row_based)
试一试,看看是否可行。
我正在做一个连接到 Documentum
数据源的 JavaFx
项目。可以说我有一组组: group1 , group2 , group3
我如何查询 dm_acl
中的所有 acl_names
谁拥有 only and exactly
这些组作为他们的 r_acceesor_name
。例如,使用以下查询我可以获得特定 acl 的 r_accessor_name:
select r_acceessor_name from dm_acl where object_name = 'My_acl_name' enable (row_based)
输出为:
group1
group2
group3
但我想做的是相反的事情。我尝试了以下查询:
select object_name from dm_acl where r_accessor_name = 'group1' or r_accessor_name = 'group2' or r_accessor_name = 'group3' enable (row_based)
但是输出的问题是它太笼统了,因为关键字 OR
然后我试了这个:
select object_name from dm_acl where r_accessor_name = 'group1' and r_accessor_name = 'group2' and r_accessor_name = 'group3' enable (row_based)
太具体了 ==> 零输出
你比你想象的更困惑自己。
每个 ACL 对象至少有两个条目:dm_owner
和 dm_world
,其中第一个代表存储库所有者,最后一个代表存储库中的每个用户。
因为你的 objective
...来自 dm_acl
的所有 acl_names
只有 并且恰好 这些组 ...
无法实现。 但是,除此之外,您的查询
SELECT object_name FROM dm_acl
WHERE r_accessor_name = 'group1'
AND r_accessor_name = 'group2'
AND r_accessor_name = 'group3'
ENABLE (ROW_BASED)
是你能得到的最好的。您的问题是您的存储库中确实没有至少包含这 3 个组的 ACL。这会引出您最初的问题:要么您做出了错误的假设,要么您试图过多地概括您的问题,以至于您忽略了其中的重要部分。 ;)
我想我读懂了你的想法并得出了你真正需要的东西:
SELECT object_name FROM dm_acl
WHERE r_accessor_name IN ('group_A', 'group_B', 'group_C')
GROUP BY object_name
HAVING COUNT(DISTINCT r_accessor_name) = 2
ENABLE (row_based)
试一试,看看是否可行。