1

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

2 回答 2

3

您可以像这样使用 DQL 创建 dm_acl 对象:

创建 dm_acl 对象 SET object_name='your_acl_name',SET owner_name='dm_dbo'

但您将无法使用 DQL 授予、撤销权限。

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

例如

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();
于 2016-09-14T10:19:02.280 回答
1

你所写的是一组 API 命令来创建 ACL。你需要类似的东西

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
于 2016-09-14T10:26:31.733 回答