如何使用DQL在Documentum中创建新的ACL

时间:2016-09-14 09:58:06

标签: acl dql documentum dfc

我正在做一个连接到Documentum数据存储的Java项目,我需要使用DQL创建一个ACL。我怎么能这样做呢?我在EMC论坛的研究中发现了以下内容,但我真的不明白如何使用它?

create,c,dm_acl  
set,c,l,object_name  
your_acl_name  
set,c,l,owner_name  
dm_dbo  
grant,c,l,dm_world,1      // Granting Permission  
revoke,c,l,dm_world,execute_proc,change_permit  // Revoking permission  
grant,c,l,your_admin,7,execute_proc,change_permit  // granting permission with extended permissions  
save,c,l 

2 个答案:

答案 0 :(得分:2)

您可以使用DQL创建dm_acl对象,如下所示:

CREATE dm_acl OBJECT SET object_name ='your_acl_name',SET owner_name ='dm_dbo'

但您无法使用DQL授予,撤消权限。

如果您从Java连接到Content Server并且可以运行DQL查询,为什么不使用DFC API来创建ACL?我猜你有权访问IDfSession吗?

E.g。

IDfACL acl = (IDfACL)session.newObject("dm_acl");
acl.setObjectName(name);
acl.setDescription(description);
acl.save();

然后你可以轻松授予,撤销:

IDfPermit permit = new DfPermit();

permit.setAccessorName("some group");
permit.setPermitType(IDfPermit.DF_ACCESS_PERMIT);
permit.setPermitValue(IDfACL.DF_PERMIT_READ_STR);
acl.grantPermit(permit);
acl.save();

答案 1 :(得分:1)

您编写的是用于创建ACL的API命令集。你需要像

这样的东西
IDfACL acl = (IDfACL)getSession().newObject("dm_acl");
acl.grant("<user_or_group_name>", IDfACL.DF_PERMIT_WRITE, IDfACL.DF_XPERMIT_CHANGE_LOCATION_STR)
... // you can countinue to add permissions here