Внешний источник данных. Авторизация ОС.

1. lishniy 134 18.07.19 10:02 Сейчас в теме
Подключаюсь к базе MSSQL через внешние источники. Хочу использовать авторизацию ОС для подключения к базе. Есть такой код в общем модуле(пробовал выполнять и на клиенте и на сервере):
Параметры = ВнешниеИсточникиДанных.tempDB.ПолучитьОбщиеПараметрыСоединения();
Параметры.АутентификацияОС = Истина;
Параметры.АутентификацияСтандартная = Ложь;
Параметры.СУБД = "MSSQLServer"; 
Параметры.ИмяПользователя = "";
врПароль = "";
Параметры.Пароль = врПароль;
АдресСервера = "CO-SQL";
ИмяБазы = "tempDB";
Параметры.СтрокаСоединения = "DRIVER={SQL Server};SERVER=" + АдресСервера + ";Trusted_Connection=yes;DATABASE=" + ИмяБазы + ";LANGUAGE=русский";
ВнешниеИсточникиДанных.tempDB.УстановитьОбщиеПараметрыСоединения(Параметры);
ВнешниеИсточникиДанных.tempDB.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), Параметры);
ВнешниеИсточникиДанных.tempDB.УстановитьПараметрыСоединенияСеанса(Параметры);
		
Попытка
ВнешниеИсточникиДанных.tempDB.УстановитьСоединение();
Возврат Истина;
Исключение
ЗаписьЖурналаРегистрации("ВИД.Подключение", УровеньЖурналаРегистрации.Ошибка,Метаданные.ВнешниеИсточникиДанных.tempDB,, ОписаниеОшибки()); 
Возврат Ложь;
КонецПопытки;
Показать

Если запускать 1с с сервера на котором запущена служба 1С, то все отрабатывает корректно. Если я запускаю с другой машины, получаю ошибку
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\АНОНИМНЫЙ ВХОД'.

Все ПК под windows и находятся в домене. Служба 1С запущена из под пользователя домена, у которого есть доступ к mssql.
Может кто сталкивался и знает как побороть такую проблему?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vz1987 15 29.06.20 01:04 Сейчас в теме
Здравствуйте! Удалось выяснить, в чем была проблема?
3. autumn_maple 01.04.24 17:54 Сейчас в теме
Если доступ к базе скуля сделан для служебного пользователя, под которым 1с крутится, то Параметры.АутентификацияОС = Ложь, а не истина и в строке соединения не указываем пользователя и пароль - "DRIVER={SQL Server}; SERVER="+ИмяСервера+";UID=;DATABASE="+ИмяБазы+"; LANGUAGE=русский";

У меня так взлетело


СтруктураВозврата = Новый Структура;
	
	Попытка
		ИмяБазы = "name_base"
		ИмяСервера = "name_server";
		
		
		ПараметрыСоединения = ВнешниеИсточникиДанных.НашВнешнийИсточник.ПолучитьОбщиеПараметрыСоединения();
		
		ПараметрыСоединения.АутентификацияСтандартная = Ложь;
		ПараметрыСоединения.АутентификацияОС = Ложь;
		
		ПараметрыСоединения.СтрокаСоединения = "DRIVER={SQL Server}; SERVER="+ИмяСервера+";UID=;DATABASE="+ИмяБазы+"; LANGUAGE=русский";
		ПараметрыСоединения.СУБД = "MSSQLServer";
		
		ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
		ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), ПараметрыСоединения);
		ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединения);
		ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьСоединение();
		
		ТекстСообщения = "Соединение с СУБД ""НашВнешнийИсточник"" успешно установлено";
		СтруктураВозврата.Вставить("Результат",Истина);
		СтруктураВозврата.Вставить("ТекстСообщения",ТекстСообщения);
		Возврат СтруктураВозврата;
	Исключение
		ТекстСообщения = "Не удалось установить соединение с СУБД ""НашВнешнийИсточник"" по причине " + ОписаниеОшибки();
		СтруктураВозврата.Вставить("Результат",Ложь);
		СтруктураВозврата.Вставить("ТекстСообщения",ТекстСообщения);
		Возврат СтруктураВозврата;
	КонецПопытки;
Показать


В настройках общего модуля, где лежит процедура установки соединения достаточно галки "Сервер" и "Вызов сервера"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот