|
21.04.2010, 17:50 | #1 |
Участник
|
Не удается построить перекрестные ссылки
Всем добрый день! Возникла проблема, связанная с построением перекрестных ссылок!
Используется AX 2009. Версия ядра 5.0.1000.52. Под пользователем с админскими правами запускаем обновление перекрестных ссылок через меню Сервис -> Средства разработки -> Перекрестные ссылки -> Периодические операции -> Обновить. В процессе выполнения операции появляется сообщение об ошибке и ссылки не строятся: Цитата:
Пользователь "AAA" не имеет прав на удаление записи из таблицы "XREFTABLERELATION". Запрос отклонен
Невозможно отредактировать запись в Связи таблицы (xRefTableRelation). Доступ запрещен: у вас недостаточно прав для изменения данных в базе данных. X++: static void Job56(Args _args) { ; xRefTableRelation::updateTableId(TableNum(VendTrans)); } Свойство MaxAccessMode таблицы xRefTableRelation установлено по умолчанию = View. Cвойство AOSAuthorization установлено по умолчанию = CreateReadUpdateDelete. Если установить свойство AOSAuthorization в None, то проблема исчезает, ссылки строятся. Также она исчезает, если поменять свойство MaxAccessMode в Delete. После прочтения различной документации наподобие Microsoft Dynamics AX Writing Secure X++ Code и MSDN, где пишут примерно одно и тоже: Цитата:
The four fundamental data access operations are create, read, update, and delete.
These operations are represented in combinations by the following AOSAuthorization enumeration values:
Suppose AOSAuthorization is set to CreateDelete on a given table.In this case, create and delete operations would be allowed to execute only if the Application Object Server (AOS) can confirm that the user has the appropriate permissions. Update and read operations would execute without checking user permissions, because they are not mentioned in the chosen AOSAuthorization value. An exception is thrown when permission checking finds that the user lacks the necessary permission. Может кто-то сталкивался с похожей проблемой и может что-то посоветовать?? PS. Либо придется менять штатные значения свойств таблицы. Последний раз редактировалось Mikky; 21.04.2010 в 18:15. |
|
21.04.2010, 20:18 | #2 |
Участник
|
Цитата:
Про AosAuthorization: Скрытие поля Inside Dynamics AX 4.0: Security Coding А также: http://msdn.microsoft.com/en-us/library/bb278259.aspx Цитата:
No permission checking is done when the AOSAuthorization property is set to None.
У меня то же самое, но перекрестные ссылки отлично строятся. Что-то у вас не то. раз запускаете из-под админа, то скорее всего, дело не в правах. Начнем с того, что Барабаашки нет! давайте пройдемся по стандартными шаманским действиям:
X++: void tabChanged(int fromTab, int toTab) { boolean enabled = true; ; element.updateDomainStatus(); if (toTab == #TabMenus) { if (this.isAdmin()) enabled = false; // Enable/Disable control buttons // on the permissions tab. clearAll.enabled(enabled); enableAll.enabled(true); //+mazzy: enabled); grantSubAccess.enabled(enabled); ... |
|
22.04.2010, 10:03 | #3 |
Участник
|
Доброе утро, Mazzy.
Я админ всего хозяйства этого. Mikky - мой коллега. Для справки, у нас база Oracle 10.2.0.4 платформа Linux. AOS AX 2009 5.0.1000.52 на Win server 2008 R2 x64. Проблема появилась после заливки новых лицензий. Место на аосе: С: (стоит винда и акса) - свободно 3,8Гб D: (прилага) - свободно 68Гб При заливке лицензий прошла синхронизация. Аос перегружается каждую ночь (backup). Я, понял, нам светит перекомпиляция и все такое...... Будем пробовать. За любую инфу всем заранее спасибо. |
|
22.04.2010, 11:00 | #4 |
Участник
|
А кто-то может все-таки разъяснить поподробней назначение свойства AOSAuthorization?
Последний раз редактировалось Mikky; 22.04.2010 в 11:15. |
|
22.04.2010, 12:45 | #5 |
Участник
|
|
|
22.04.2010, 14:33 | #6 |
Участник
|
А что значит фраза
Цитата:
operations would be allowed to execute only if the Application Object Server (AOS) can confirm that the user has the appropriate permissions.
какие разрешения, что имеется в виду, где настроить? |
|
22.04.2010, 15:02 | #7 |
Участник
|
|
|
22.04.2010, 14:47 | #8 |
Участник
|
Цитата:
Но там посмотреть нужно то же самое - есть ли место под tablespace и лог, а также не ограничены ли они. С Oracle есть один тонкий момент - в нем можно было указать размер блока. В MS SQL последних версий размер кластера всегда 8Кб. Если вы выставили 4Кб, то возможны совершенно необъяснимые глюки. Но тут лучше подскажут другие, кто работал с Oracle. Для старых версий вот http://axapta.mazzy.ru/lib/oraclesetup/ |
|
22.04.2010, 15:04 | #9 |
Участник
|
Цитата:
Сообщение от mazzy
Ок. Тогда про Oracle я помолчу, ибо не сильно в нем разбираюсь.
Но там посмотреть нужно то же самое - есть ли место под tablespace и лог, а также не ограничены ли они. С Oracle есть один тонкий момент - в нем можно было указать размер блока. В MS SQL последних версий размер кластера всегда 8Кб. Если вы выставили 4Кб, то возможны совершенно необъяснимые глюки. Но тут лучше подскажут другие, кто работал с Oracle. Для старых версий вот http://axapta.mazzy.ru/lib/oraclesetup/ Блок 8К я выставил, он default при установке. Спасибо за ответ. |
|
28.05.2010, 16:15 | #10 |
Участник
|
Вот и я столкнулся с подобной ошибкой.
Цитата:
Сообщение от Mikky
Всем добрый день! Возникла проблема, связанная с построением перекрестных ссылок!
Используется AX 2009. Версия ядра 5.0.1000.52. Цитата:
Пользователь "AAA" не имеет прав на удаление записи из таблицы "XREFTABLERELATION". Запрос отклонен
Невозможно отредактировать запись в Связи таблицы (xRefTableRelation). Доступ запрещен: у вас недостаточно прав для изменения данных в базе данных. Цитата:
Свободное место на диске C = 19.6ГБ Ключевое слово - после заливки новых лицензий. Залил клиентские лицензии. Advanced Management. У теблицы Cвойство AOSAuthorization установлено по умолчанию = CreateReadUpdateDelete. Типовые шаманские действия провел. У админа действительно полные права. Ошибка не исчезает. Забавно. |
|
28.05.2010, 22:43 | #11 |
Участник
|
ха! было дело, буквально вчера... тоже после заливки новой лицензии при синхронизации вылазила подобная ошибка на одну таблицу. Оказалось, что в старой лицензии был включен ключ на Конфигуратор продукции(в новой он отсутствовал). А после импорта новой лицензии таблица осталась(почему-то). На ней был securityKey родителем которого был отключенный в новой лицензии лицензионный ключ "Конфигуратор продукции". Временно убрал значение в свойстве таблицы SecurityKey. Запустил синхронизацию заново - и вуаля - ошибок нет. Но вот почему такая ситуация возникла - не пойму пока.
|
|
28.05.2010, 22:48 | #12 |
Участник
|
Цитата:
Странно это. |
|
24.11.2011, 04:12 | #13 |
Участник
|
Столкнулись с аналогичной проблемой, но в BacisTables - у юзера две группы, в одной полный доступ к этому SecurityKey, в другой доступа нет. По общим правилам в этом случае должен браться максимальный уровень доступа, однако, пока в обоих группах не сделали полный доступ к BacisTables (ошибка выдавалась на какую-то фишку, прикрытую этим SecurityKey, но отсутствующую в иерархии элементов).
Это все в AX 2009. |
|
29.04.2011, 08:34 | #14 |
Участник
|
ага. вот и я столкнулся с таким.
ax2009. таблица xRefReferences имеет стандартные настройки все дело в том, что я вхожу в несколько групп. одна из моих групп - Basic - предназначена для стандартных минимальных прав к аксапте. права на свои параметры, на документооборот, на мастер отчетов, на переименование ключей, на чтение журнала базы данных и т.д. В том числе на таблицу xRefReferences, чтобы пользователи могли при фильтрации добавлять доп.таблицы в фильтр (правой кнопкой 1:n, n:1) у этой группы включены права на сами таблицы, но не включены права на ветку SysDevelopmentTables. Аксапта почему-то берет не максимально возможные права из нескольких групп (Admin + Basic), а минимальные для этой ветки (возможно ошибка аксапты). =================== что нужно сделать: как обычно, дать права на ветку SysDeveloperTables и выключить права на ненужные таблицы в этой ветке во ВСЕХ группах, которые так или иначе дают доступ к таблицам из этой ветки. |
|
|
За это сообщение автора поблагодарили: Logger (3), propeller (1). |
29.04.2011, 10:04 | #15 |
Member
|
Цитата:
Сообщение от mazzy
...
Аксапта почему-то берет не максимально возможные права из нескольких групп (Admin + Basic), а минимальные для этой ветки (возможно ошибка аксапты). =================== что нужно сделать: как обычно, дать права на ветку SysDeveloperTables и выключить права на ненужные таблицы в этой ветке во ВСЕХ группах, которые так или иначе дают доступ к таблицам из этой ветки. ... Хорошо что не системная.
__________________
С уважением, glibs® |
|
29.04.2011, 08:41 | #16 |
Участник
|
А на какой сборке ядра это вылезло?
|
|
29.04.2011, 09:28 | #17 |
Участник
|
у меня на kernel version 5.0.1500.3761
но судя по вопросам, у людей было и раньше |
|
29.04.2011, 10:11 | #18 |
Участник
|
А мне больше нравится вариант завести для сбора перекрестных ссылок отдельную учетную запись и соотв. пользователя в Аксапте, чтобы было не так страшно его пароль тому же планировщику раскрывать. Потому что под своей учетной записью всякие там задания планировщиком запускать как-то стрёмно.
|
|
|
За это сообщение автора поблагодарили: Wamr (3). |
29.04.2011, 12:17 | #19 |
Участник
|
Цитата:
Сообщение от gl00mie
А мне больше нравится вариант завести для сбора перекрестных ссылок отдельную учетную запись и соотв. пользователя в Аксапте, чтобы было не так страшно его пароль тому же планировщику раскрывать. Потому что под своей учетной записью всякие там задания планировщиком запускать как-то стрёмно.
если не дать права на ветку sysDevelopmentTables, то пользователи не могут добавить дополнительные таблицы в запросы Бухгалтерские проводки. Запрос. N:1 |
|
29.04.2011, 10:55 | #20 |
Участник
|
Еще было бы неплохо этот баг кому-нить зарегать.
Ну явно же права глючат. Либо неописанная нигде фича. |
|