| 
			
			 | 
		#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 | |||
		
  |