01.10.2004, 17:47 | #1 |
Участник
|
Экспорт/Импорт прав доступа
Добрый день.
Возможно ли в Axapta сделать экспорт/импорт прав доступа (которые для групп пользователей) через группы опеределения Экспорта/Импорта? В каких таблицах храняться права доступа? Или хотя бы где искать, в каких таблицах они храняться. Через форму настроек прав доступа докопаться до истины мне не удалось
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
01.10.2004, 18:12 | #2 |
Модератор
|
Нет, эти таблицы не видны в форме импорта/экспорта. Но их можно сохранить в файл / скачать из файла.
Или программно... С Уважением, Георгий |
|
01.10.2004, 18:14 | #3 |
Участник
|
Ну пусть так. А что это за таблицы? Где хоть искать-то? Или в самом EnteprizeManager'е - не меньше?
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
01.10.2004, 18:18 | #4 |
NavAx
|
а стандартный экспорт/импорт вас не устраивает?
__________________
Isn't it nice when things just work? |
|
01.10.2004, 18:23 | #5 |
Модератор
|
Да что ж вам все программировать-то нетерпиться??
Администрирование - Настройки - Группы пользователей - Права доступа - Импорт/Экспорт. Если ручки чешуться попрограммить - то смотрите, как это работает точно не помню, но попробуйте SysUserGroupList SysUserInfo ...... Их нет в АОТ, но есть в доке. Удачи! Георгий. |
|
01.10.2004, 18:27 | #6 |
Участник
|
Никогда не делал это с правами, но подозреваю, что можно сделать стандаратным путем:
"Администрирование / Переодические операции / Экспорт/Импорт данных / Группы определения" Надо выбрать таблицы: UserGroupInfo DomainInfo SysASPClientTable Может что-то еще. Попробуйте. |
|
01.10.2004, 18:28 | #7 |
Участник
|
Да ничо у меня не чешется Народ вокруг истерит малось, хочет экспортнуть данные настроек И настроек прав доступа в том числе.
Вроде успокоились на обычном экспорте/импорте. Большое все спасибо! ЗЫ Приведенные здесь таблицы - это не то. Это просто таблицы групп пользователей. Это я уже смотрела.
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
01.10.2004, 18:34 | #8 |
Участник
|
Re: Экспорт/Импорт прав доступа
Цитата:
Изначально опубликовано Anais
... В каких таблицах храняться права доступа? Или хотя бы где искать, в каких таблицах они храняться. ... На закладке "Информация" открывшегося окна нажать кнопку "Правка". В окне, которое откроется можно узнать на каких таблицах основывается данная форма. |
|
01.10.2004, 18:37 | #9 |
Участник
|
Re: Re: Экспорт/Импорт прав доступа
Цитата:
Изначально опубликовано ax_f
Для определения таблиц можно на форме выбрать в меню (правая кнопка мыши) пункт "Настройка". На закладке "Информация" открывшегося окна нажать кнопку "Правка". В окне, которое откроется можно узнать на каких таблицах основывается данная форма. Но все равно спасибо за разъяснение.
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
01.10.2004, 18:38 | #10 |
NavAx
|
Re: Re: Экспорт/Импорт прав доступа
Цитата:
Изначально опубликовано ax_f
...В окне, которое откроется можно узнать на каких таблицах основывается данная форма.
__________________
Isn't it nice when things just work? |
|
01.10.2004, 20:46 | #11 |
Участник
|
Re: Re: Re: Экспорт/Импорт прав доступа
Цитата:
Изначально опубликовано Anais
Знаю-знаю В моем случае (на нужной мне форме) данные напрямую из таблиц беруться только на первой закладке. А на второй - данные строятся динамически, через класс и с использованием временной таблицы. Вот такие пироги... Но все равно спасибо за разъяснение. Пироги, так пироги! А если бы Вы не спросили про экспорт/импорт прав, А если бы я не ответил (пускай даже) "не совсем" точно, То, может быть, я никогда и не узнал бы, как хитро строится данная форма.... P.S. Вот так вот знания и добываются. Спасибо Mazzy и его команде, что есть такой замечательный форум!
__________________
Я не волшебник, я только учусь! |
|
04.10.2004, 13:04 | #12 |
Участник
|
Re: Экспорт/Импорт прав доступа
Цитата:
Изначально опубликовано Anais
Добрый день. Возможно ли в Axapta сделать экспорт/импорт прав доступа (которые для групп пользователей) через группы опеределения Экспорта/Импорта? В каких таблицах храняться права доступа? Или хотя бы где искать, в каких таблицах они храняться. Через форму настроек прав доступа докопаться до истины мне не удалось Для правильного экспорта / импорта прав доступа необходимо включить в группу импорта/экспорта следующие таблицы: USERGROUPINFO USERINFO USERGROUPLIST DOMAININFO ACCESSRIGHTSLIST В последней таблице как раз и хранятся права доступа по группам. Некоторые особенности импорта/экспорта. 1. Создавать и использовать группу определения импорта/экспорта можно только под пользователем Admin. У других админов права на некоторые из этих таблиц отсутствуют. 2. Если файл эскпорта был создан на системе с правами на домены, а импортируется на систему с отсутствием прав на домены, то после импорта файла необходимо напрямую в базе почистить таблицу DOMAININFO (или не ипортировать ее вовсе ) и выполнить update на таблице ACCESSRIGHTSLIST. А именно, update ACCESSRIGHTSLIST set DOMAINID = chr(2); З.Ы. Это все прекрасно делает кнопка Импорт/Экспорт на форме права групп пользователей. Вот только ума не приложу, неужели так сложно было реализовать эту кнопку и для ВСЕХ групп тоже, а не только для одной. :-\
__________________
Дайте мне точку опоры, и я переверну земной шар (Архимед) |
|
04.10.2004, 13:25 | #13 |
NavAx
|
Добавлю небольшую ложку дёгтя.
Использование кнопки Импорт/Экспорт на форме права групп пользователей не всегда приводит к ПОЛНОМУ копированию прав, т.к. эта процедура копирует права только из ACCESSRIGHTSLIST, а в настройке доступа еще можно отключить доступ к контролам формы, которые не копируются таким методом. Настройки доступа к контролам форм лежат в таблицах SysSecurityFormControlTable и SysSecurityFormTable. |
|
|
За это сообщение автора поблагодарили: Kabardian (3). |
05.10.2004, 00:04 | #14 |
Member
|
Alexis,
вот более полный перечень таблиц CompanyDomainList DomainInfo AccessRightsList UserGroupList UserGroupInfo UserInfo Мне удалось включить эти таблицы в группу определения под пользователем, отличным от Admin.
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: Kabardian (3). |
13.01.2005, 12:33 | #15 |
Участник
|
1) CompanyDomainList, DomainInfo, AccessRightsList, UserGroupList, UserGroupInfo, UserInfo - это верно и для Ах 2,5 ?
2) в 2.5 таблиц типа SysSecurityFormControlTable и SysSecurityFormTable я не нашел их там нет или я их не вижу (пользователем Admin)? |
|
22.06.2005, 16:49 | #16 |
Участник
|
А может еще какие-то таблицы есть отвечающие за права пользователей
Цитата:
вот более полный перечень таблиц
CompanyDomainList DomainInfo AccessRightsList UserGroupList UserGroupInfo UserInfo AccessRightsList - содержит GroupID - понятно название группы DomainID - понятно название домена RecordType = 3 ParentID от 0 до 4 - уровень в дереве меню ID - какой-то идишник AccessType - от 0 до 4 я так понимаю уровень доступа 0-никакой,4-полный AccessTypeFkeyUse - от 0 до 4 -тоже какой-то уровень доступа ... RECID - ид записи Так как часто приходиться отвечать на вопросы "А кто имеет доступ туда-то?", то какбы отвечать на них быстро. В какой таблице (каких таблицах) найти описание структуры меню или функциональных ключей на которые выставлены права в этой таблице. Как найти таблицы которые связаны с этой? Или остальное сильно зашифровано в самом приложении Аксапты 2.5. |
|
22.06.2005, 22:37 | #17 |
Administrator
|
Список таблиц, отвечающих за права доступа:
AccessRightsList (\\System Documentation\Tables\) SysSecurityFormTable (\\DataDictionary\Tables\), начиная с версии 3.0 SysSecurityFormControlTable (\\DataDictionary\Tables\), начиная с версии 3.0 Все таблицы присутствуют в базе данных. Все прочие таблицы, указанные в ветке НЕ ОТВЕЧАЮТ за настройку прав доступа и являются лишь справочниками к указанным таблицам. Цитата:
В какой таблице (каких таблицах) найти описание структуры меню или функциональных ключей на которые выставлены права в этой таблице
Доступ хранится весьма банально - и не в виде дерева (Ax3.0): Тип элемента(menuItem, Table, Field и т.д.), IDЭлемента, уровень доступа. Дерево строится самой Аксаптой. Для примера - можно к двум пунктам меню прицепить одну форму. Если попытаться изменить чего-то в поддереве одного пункта меню, то в поддереве другого изменения автоматически отобразятся. Также нужно учесть, что ID-шники элементов могут меняться, а следовательно и слетать права (http://www.axforum.info/forums/showt...&threadid=9480). Цитата:
Вот только ума не приложу, неужели так сложно было реализовать эту кнопку и для ВСЕХ групп тоже, а не только для одной
Другое дело, что на мой взгляд было бы логичнее выгружать права не по ID-шникам а по названиям. Но как говорится и на этом спасибо |
|
22.06.2005, 22:43 | #18 |
Administrator
|
2 raz: Ага, совершенно точно.... При этом (проверено на практике!) - добавление нового контрола на форму сшибает напрочь ID-шники у остальных. У меня в частности так изменился ID-шник кнопки расширенно на форме заказов (SalesTable) при добавлении одного поля в грид.
Ессно после этого права отдыхают ... Выход есть конечно - но он упирается в модификацию - несложную, но нудную |
|
|
За это сообщение автора поблагодарили: Kabardian (3). |
23.06.2005, 00:28 | #19 |
Участник
|
А из каких таблиц строиться дерево?
Цитата:
Доступ хранится весьма банально - и не в виде дерева (Ax3.0):
Тип элемента(menuItem, Table, Field и т.д.), IDЭлемента, уровень доступа. Какие таблицы взять? И так чтобы соединив с AccessRightsList можно было быстро отвечать на вопросы "А кто имеет права просмотра/изменения/... такого-то пункта меню?" Да, забыл сказать Ax3.0 хорошо, но мне нужно это для ax25. |
|
23.06.2005, 00:56 | #20 |
Administrator
|
Если 2.5 - то никакие. Только AccessRightsList. Беда в том, что НЕВОЗМОЖНО построить дерево средствами MS SQL, т.к. для построения дерева ипользуется информация о свойствах элемента АОТ - такая как какой SecurityKey (Feature Key) относится к такому-то пункту меню и какой пункт меню что вызывает (форму, класс и т.д.). А вот инфа об элементах АОТ хранится в файликах .aod, и никоим боком не пролетает в базе данных.
Однако, ответить на вопрос - а кто имеет такой-то доступ к такому-то пункту меню - получить можно. Пишется хранимая процедура, в которой в качестве параметра передается тип элемента и его ID (А вот уж как получить ID -отдельная песня). Далее делается банальный SELECT * FROM ACCESSRIGHTSLIST WHERE .... - все эти условия. Для пунктов меню ID не нужен - в таблице сидит название меню. Информацию по таблицам и полям можно выковырять из таблицы SQLDICTIONARY - там аккурат сидит соответствие аксаптийных таблиц - SQL-ным. Правда там нет временных таблиц. Вот ключей (Security, Feauture) вы там не найдете. Названия форм вроде тоже есть в ACCESSRIGHTSLIST, хотя лучше проверить. Собсно говоря все.... |
|