|
![]() |
#1 |
Участник
|
Доступ к аксаптовской таблице со стороны
Всем привет.
Есть аксаптовская база (СУБД MS SQL Server). Хочу дать разрешение на чтение одной таблицы внешнему приложению. Для этого завел в SQL Server новый логин, в самой базе новую роль с правом на чтение нужной таблицы. Все работает, но до первой синхронизации базы и приложения - слетают настройки доступа для таблиц и представлений (View). Вопрос - как обойти подобную проблему? Вижу несколько решений: 1. Дать бОльшие права (Роль db_datareader). Но это стрельба из пушки по воробьям. 2. Создать отдельную базу с такой же таблицей и экспортировать в нее данные из исходной (по регламенту или после изменений). Некрасивое решение. 3. Создать хранимую процедуру, в которой выбирать необходимые данные. В данном случае решение не подходит, т.к. требуется именно Table или View. Есть еще варианты? |
|
![]() |
#2 |
NavAx
|
А что если после каждой синхронизации выполнять некий скрипт в котором GRANT SELECT
ON some_table TO my_role GO ...? Последний раз редактировалось Roman777; 20.03.2006 в 15:46. |
|
|
За это сообщение автора поблагодарили: Hezl (1). |
![]() |
#3 |
NavAx
|
Проверил на своей базе : создал роль, установил права этой роли на таблице Address, добавил пользователю эту роль... Провел синхронизацию - права не слетели.
_________________________________ MS SQL 2000 EE SP4 Axapta 3 SP4 EE FP1 |
|
![]() |
#4 |
Участник
|
Про GRANT хорошая идея. Спасибо. Респект.
А про синхронизацию... Вы уверены, что процесс синхронизации реально запускался? Я предварительно добавлял поле в таблицу, чтобы быть уверенным ![]() MS SQL 2000. Про SP не скажу. Axapta 3.0 SP3 CU1 |
|
![]() |
#5 |
Участник
|
Права сбрасываются для View. Для таблицы все отрабатывает нормально.
|
|
![]() |
#6 |
NavAx
|
А, сорри. В таблицу ничего не добавлял и не удалял из нее (я имею ввиду не изменял ее структуру)...
|
|
![]() |
#7 |
NavAx
|
Да, теперь подтверждаю: у view права действительно слетают и причина известна - при изменении структуры view и ее синхронизации происходит ее удаление и создание.
Тут наверное только GRANT поможет после синхронизации... Может есть еще какие идеи? |
|
![]() |
#8 |
Участник
|
1.GRANT
2. Создать View в другой базе на основе таблиц из аксаптовской базы. Причем дать доступ только на те поля таблиц, которые участвуют в выборке. Т.к. настройки для таблиц не слетают, то работать будет. Наверняка есть еще варианты. |
|
![]() |
#9 |
NavAx
|
3. В этой же базе построить VIEW (средствами SQL) на основе VIEW из аксапты. Назначить этой view необходимые права. Axapta не свои вьюхи не трогает при синхронизации. Плюс решения - не нужно задействовать другую базу.
|
|
![]() |
#10 |
Участник
|
В общем, альтернатива есть.
Спасибо за конструктивное обсуждение ![]() |
|
|
![]() |
||||
Тема | Ответов | |||
Фильтрование записей при "переходе к основной таблице" | 10 | |||
Доступ к таблице Номера ГТД | 5 | |||
доступ к таблице ProdRouteTrans | 1 | |||
Доступ к временной таблице | 2 | |||
фильтр по связанной таблице | 13 |
|