我正在做一个连接到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
答案 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