Как удалить acl из таблицы объектов dm_acl

Я использую documentum и хочу удалить несколько ACL из моей таблицы объектов dm_acl. сначала я убедился, что acl существует:

select * from dm_acl where object_name = 'myAclName'

затем я убедился, что ни один другой объект не использует этот acl

select * from dm_folder where acl_name = 'myAclName'

а затем я использовал следующее, чтобы удалить этот acl:

delete dm_acl objects where object_name = 'myAclName'

Но затем я получаю сообщение об ошибке, что you have specified a none updatable type (dm_acl). Есть ли способ удалить ACL с помощью DQL или DFC


person Danial Kosarifa    schedule 07.11.2016    source источник


Ответы (1)


Вы не можете удалить объекты ACL с помощью DQL. Однако вы можете удалить его с помощью API с синтаксисом

destroy,c,<acl_object_id>

Еще одна вещь, проверьте, что вы упомянули

select * from dm_folder where acl_name = 'myAclName'

недостаточно. Объект ACL можно найти в каждом sysobject, поэтому в основном вам нужно расширить проверку до типа dm_sysobject.

select * from dm_sysobject where acl_name = 'myAclName'

Удаление ACL через DFC возможно, так как в интерфейсе IDfAcl есть метод destroyACL().

person Miki    schedule 07.11.2016
comment
Понятно, но как я могу использовать такой APIs, как тот, который вы упомянули выше, в java? любая ссылка, ресурс или даже образец приветствуются :) Я пытался погуглить, но не смог найти разумного результата. - person Danial Kosarifa; 08.11.2016
comment
Вы можете запустить его в Documentum Administrator или загрузить Repoint или DqMan, чтобы использовать его во время игры. Вы можете запустить его непосредственно на Content Server, если вам нужно запустить его один раз, используя инструменты командной строки. Вы можете запустить его в коде DFC, но в этом случае проще использовать объекты IDfAcl и вызывать метод ddestroyACL(). - person Miki; 08.11.2016