AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2010, 17:50   #1  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
Не удается построить перекрестные ссылки
Всем добрый день! Возникла проблема, связанная с построением перекрестных ссылок!
Используется AX 2009. Версия ядра 5.0.1000.52.

Под пользователем с админскими правами запускаем обновление перекрестных ссылок через меню Сервис -> Средства разработки -> Перекрестные ссылки -> Периодические операции -> Обновить.
В процессе выполнения операции появляется сообщение об ошибке и ссылки не строятся:

Цитата:
Пользователь "AAA" не имеет прав на удаление записи из таблицы "XREFTABLERELATION". Запрос отклонен
Невозможно отредактировать запись в Связи таблицы (xRefTableRelation).
Доступ запрещен: у вас недостаточно прав для изменения данных в базе данных.
Пробуем обновить перекрестные ссылки с помощью статического метода для какой-нибудь отдельной таблички, допустим для VendTrans:

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:
  • None
  • CreateDelete
  • UpdateDelete
  • CreateUpdateDelete
  • CreateReadUpdateDelete
No permission checking is done when the AOSAuthorization property is set to None.
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.
не удалось понять, что это за пользовательские разрешения, которые проверяет АОС, при установленном значении AOSAuthorization и где они настраиваются. Или это обычные права доступа пользователя в Аксапте, которые можно настроить к проверке только для определенных действий (create, read, update, and delete)?

Может кто-то сталкивался с похожей проблемой и может что-то посоветовать??

PS.
Либо придется менять штатные значения свойств таблицы.

Последний раз редактировалось Mikky; 21.04.2010 в 18:15.
Старый 21.04.2010, 20:18   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Mikky Посмотреть сообщение
Может кто-то сталкивался с похожей проблемой и может что-то посоветовать??

PS. Либо придется менять штатные значения свойств таблицы.
Погодите менять.

Про 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.
Погодите.
У меня то же самое, но перекрестные ссылки отлично строятся.

Что-то у вас не то.
раз запускаете из-под админа, то скорее всего, дело не в правах.

Начнем с того, что Барабаашки нет!
давайте пройдемся по стандартными шаманским действиям:
  1. сколько свободного места под temp-файлы? (у клиента? у AOS?)
  2. нет ли ограничений на transaction log в MS SQL и не переполнен ли этот transaction log (может у вас новые транзакции не могут быть записаны, поэтому ничего и не добавляется, не удаляется)
  3. сколько свободного места на дисках, где лежит transaction log? а там где лежит база данных?
  4. сколько свободного места на диске, куда свопится винда? (у клиента? у AOS?)
  5. AOS'ы прегружали?
  6. приложение переиндексировали?
  7. а перекомпилировали?
  8. синхронизацию проводили?
  9. если передергивали лицензионные или конфигурационные ключи, то у админа кнопочку "Установите полный доступ для всех" нажимали? (чтобы нажать у админа нужно залезть в коде и отключить проверку на админскую группу для этой кнопки)

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);
...
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 482
Размер:	109.6 Кб
ID:	5734  
__________________
полезное на axForum, github, vk, coub.
Старый 22.04.2010, 10:03   #3  
antonio is offline
antonio
Участник
Аватар для antonio
 
8 / 10 (1) +
Регистрация: 26.07.2007
Доброе утро, 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  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
А кто-то может все-таки разъяснить поподробней назначение свойства AOSAuthorization?

Последний раз редактировалось Mikky; 22.04.2010 в 11:15.
Старый 22.04.2010, 12:45   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Mikky Посмотреть сообщение
А кто-то может все-таки разъяснить поподробней назначение свойства AOSAuthorization?
http://msdn.microsoft.com/en-us/library/bb278259.aspx
Старый 22.04.2010, 14:33   #6  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
Цитата:
А что значит фраза
Цитата:
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, 14:47   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от antonio Посмотреть сообщение
Я админ всего хозяйства этого. Mikky - мой коллега. Для справки, у нас база Oracle 10.2.0.4 платформа Linux. AOS AX 2009 5.0.1000.52 на Win server 2008 R2 x64.
Ок. Тогда про Oracle я помолчу, ибо не сильно в нем разбираюсь.
Но там посмотреть нужно то же самое - есть ли место под tablespace и лог, а также не ограничены ли они.

С Oracle есть один тонкий момент - в нем можно было указать размер блока.
В MS SQL последних версий размер кластера всегда 8Кб.
Если вы выставили 4Кб, то возможны совершенно необъяснимые глюки.
Но тут лучше подскажут другие, кто работал с Oracle.

Для старых версий вот http://axapta.mazzy.ru/lib/oraclesetup/
__________________
полезное на axForum, github, vk, coub.
Старый 22.04.2010, 15:02   #8  
antonio is offline
antonio
Участник
Аватар для antonio
 
8 / 10 (1) +
Регистрация: 26.07.2007
Цитата:
Эот документ прочитан. Спасибо.
Старый 22.04.2010, 15:04   #9  
antonio is offline
antonio
Участник
Аватар для antonio
 
8 / 10 (1) +
Регистрация: 26.07.2007
Цитата:
Сообщение от mazzy Посмотреть сообщение
Ок. Тогда про Oracle я помолчу, ибо не сильно в нем разбираюсь.
Но там посмотреть нужно то же самое - есть ли место под tablespace и лог, а также не ограничены ли они.

С Oracle есть один тонкий момент - в нем можно было указать размер блока.
В MS SQL последних версий размер кластера всегда 8Кб.
Если вы выставили 4Кб, то возможны совершенно необъяснимые глюки.
Но тут лучше подскажут другие, кто работал с Oracle.

Для старых версий вот http://axapta.mazzy.ru/lib/oraclesetup/

Блок 8К я выставил, он default при установке. Спасибо за ответ.
Старый 22.04.2010, 15:09   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Mikky Посмотреть сообщение
какие разрешения, что имеется в виду, где настроить?
На сколько я понимаю речь идёт о правах пользователя. Тех самых, что настраиваются в модуле Администрирование.
Старый 28.05.2010, 16:15   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Вот и я столкнулся с подобной ошибкой.

Цитата:
Сообщение от Mikky Посмотреть сообщение
Всем добрый день! Возникла проблема, связанная с построением перекрестных ссылок!
Используется AX 2009. Версия ядра 5.0.1000.52.

Цитата:
Пользователь "AAA" не имеет прав на удаление записи из таблицы "XREFTABLERELATION". Запрос отклонен
Невозможно отредактировать запись в Связи таблицы (xRefTableRelation).
Доступ запрещен: у вас недостаточно прав для изменения данных в базе данных.
Под пользователем с админскими правами запускаем
Только у меня ругается на ProjInvoiceJour.

Цитата:
Сообщение от antonio Посмотреть сообщение
Для справки, у нас база Oracle 10.2.0.4 платформа Linux. AOS AX 2009 5.0.1000.52 на Win server 2008 R2 x64.

Проблема появилась после заливки новых лицензий.

Место на аосе: С: (стоит винда и акса) - свободно 3,8Гб
У меня MS SQL 2005.
Свободное место на диске C = 19.6ГБ

Ключевое слово - после заливки новых лицензий.
Залил клиентские лицензии. Advanced Management.
У теблицы Cвойство AOSAuthorization установлено по умолчанию = CreateReadUpdateDelete.
Типовые шаманские действия провел. У админа действительно полные права.
Ошибка не исчезает. Забавно.
__________________
полезное на axForum, github, vk, coub.
Старый 28.05.2010, 22:43   #12  
zelibobis is offline
zelibobis
Участник
 
71 / 24 (1) +++
Регистрация: 15.10.2007
Адрес: Kiev
ха! было дело, буквально вчера... тоже после заливки новой лицензии при синхронизации вылазила подобная ошибка на одну таблицу. Оказалось, что в старой лицензии был включен ключ на Конфигуратор продукции(в новой он отсутствовал). А после импорта новой лицензии таблица осталась(почему-то). На ней был securityKey родителем которого был отключенный в новой лицензии лицензионный ключ "Конфигуратор продукции". Временно убрал значение в свойстве таблицы SecurityKey. Запустил синхронизацию заново - и вуаля - ошибок нет. Но вот почему такая ситуация возникла - не пойму пока.
Старый 28.05.2010, 22:48   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от zelibobis Посмотреть сообщение
На ней был securityKey родителем которого был отключенный в новой лицензии лицензионный ключ "Конфигуратор продукции". Временно убрал значение в свойстве таблицы SecurityKey.
Но у меня то лицензия на проекты 1 есть.
Странно это.
__________________
полезное на axForum, github, vk, coub.
Старый 28.05.2010, 23:01   #14  
zelibobis is offline
zelibobis
Участник
 
71 / 24 (1) +++
Регистрация: 15.10.2007
Адрес: Kiev
А на xRefTableRelation стоит секюрити ключ SysDevelopmentTables и конфигурационный SysDevelopmentMorphX. Может с ними что-то не так?
Старый 29.04.2011, 08:34   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ага. вот и я столкнулся с таким.

ax2009.
таблица xRefReferences имеет стандартные настройки
Нажмите на изображение для увеличения
Название: table.PNG
Просмотров: 297
Размер:	55.6 Кб
ID:	6821

все дело в том, что я вхожу в несколько групп.
одна из моих групп - Basic - предназначена для стандартных минимальных прав к аксапте. права на свои параметры, на документооборот, на мастер отчетов, на переименование ключей, на чтение журнала базы данных и т.д. В том числе на таблицу xRefReferences, чтобы пользователи могли при фильтрации добавлять доп.таблицы в фильтр (правой кнопкой 1:n, n:1)
Название: group.PNG
Просмотров: 1803

Размер: 15.0 Кб

у этой группы включены права на сами таблицы, но не включены права на ветку SysDevelopmentTables.
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 238
Размер:	58.4 Кб
ID:	6824 Нажмите на изображение для увеличения
Название: sysdevelopmenttables.PNG
Просмотров: 280
Размер:	64.7 Кб
ID:	6823

Аксапта почему-то берет не максимально возможные права из нескольких групп (Admin + Basic), а минимальные для этой ветки (возможно ошибка аксапты).

===================
что нужно сделать: как обычно, дать права на ветку SysDeveloperTables и выключить права на ненужные таблицы в этой ветке во ВСЕХ группах, которые так или иначе дают доступ к таблицам из этой ветки.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Logger (3), propeller (1).
Старый 29.04.2011, 08:41   #16  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А на какой сборке ядра это вылезло?
Старый 29.04.2011, 09:28   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
у меня на kernel version 5.0.1500.3761

но судя по вопросам, у людей было и раньше
Цитата:
Сообщение от Mikky Посмотреть сообщение
Используется AX 2009. Версия ядра 5.0.1000.52.
__________________
полезное на axForum, github, vk, coub.
Старый 29.04.2011, 10:04   #18  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от mazzy
...
Аксапта почему-то берет не максимально возможные права из нескольких групп (Admin + Basic), а минимальные для этой ветки (возможно ошибка аксапты).

===================
что нужно сделать: как обычно, дать права на ветку SysDeveloperTables и выключить права на ненужные таблицы в этой ветке во ВСЕХ группах, которые так или иначе дают доступ к таблицам из этой ветки.
...
Мне больше нравится вариант сменить свойство "AOSAuthorization" таблицы на "None".

Хорошо что не системная.
__________________
С уважением,
glibs®
Старый 29.04.2011, 10:11   #19  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А мне больше нравится вариант завести для сбора перекрестных ссылок отдельную учетную запись и соотв. пользователя в Аксапте, чтобы было не так страшно его пароль тому же планировщику раскрывать. Потому что под своей учетной записью всякие там задания планировщиком запускать как-то стрёмно.
За это сообщение автора поблагодарили: Wamr (3).
Старый 29.04.2011, 10:55   #20  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Еще было бы неплохо этот баг кому-нить зарегать.
Ну явно же права глючат.
Либо неописанная нигде фича.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Перекрестные ссылки - ошибка. Logger DAX: База знаний и проекты 2 07.04.2008 17:07
Производство: Почему теряются ссылки дочерних производств при приемке родительского? e@gle DAX: Функционал 0 01.03.2007 13:23
Перекрестные ссылки\Чем используется, найденные объекты помещаются в проект raz DAX: База знаний и проекты 0 29.11.2006 11:46
Перекрестные ссылки при компиляции Wamr DAX: Администрирование 6 16.06.2005 15:28
Перекрестные ссылки eugene egorov DAX: Программирование 12 26.03.2003 14:27
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:00.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.