Внешний источник данных. Авторизация ОС.
Подключаюсь к базе MSSQL через внешние источники. Хочу использовать авторизацию ОС для подключения к базе. Есть такой код в общем модуле(пробовал выполнять и на клиенте и на сервере):
Если запускать 1с с сервера на котором запущена служба 1С, то все отрабатывает корректно. Если я запускаю с другой машины, получаю ошибку
Все ПК под windows и находятся в домене. Служба 1С запущена из под пользователя домена, у которого есть доступ к 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.
Может кто сталкивался и знает как побороть такую проблему?
По теме из базы знаний
- Консоль запросов EX (внешние данные)
- Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST
- Ошибка аутентификации клиента средствами операционной системы: Аутентификационный контекст клиента отсутствует в рабочем процессе
- Управляем базами на SQL, не выходя из 1С
- BackEnd на 1с8. Регистрация и авторизация мобильного или web приложения через расширение 1С (HTTP-сервис, HTTPS, без Firebase)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если доступ к базе скуля сделан для служебного пользователя, под которым 1с крутится, то Параметры.АутентификацияОС = Ложь, а не истина и в строке соединения не указываем пользователя и пароль - "DRIVER={SQL Server}; SERVER="+ИмяСервера+";UID=;DATABASE="+ИмяБазы+"; LANGUAGE=русский";
У меня так взлетело
В настройках общего модуля, где лежит процедура установки соединения достаточно галки "Сервер" и "Вызов сервера"
У меня так взлетело
СтруктураВозврата = Новый Структура;
Попытка
ИмяБазы = "name_base"
ИмяСервера = "name_server";
ПараметрыСоединения = ВнешниеИсточникиДанных.НашВнешнийИсточник.ПолучитьОбщиеПараметрыСоединения();
ПараметрыСоединения.АутентификацияСтандартная = Ложь;
ПараметрыСоединения.АутентификацияОС = Ложь;
ПараметрыСоединения.СтрокаСоединения = "DRIVER={SQL Server}; SERVER="+ИмяСервера+";UID=;DATABASE="+ИмяБазы+"; LANGUAGE=русский";
ПараметрыСоединения.СУБД = "MSSQLServer";
ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьПараметрыСоединенияПользователя(ИмяПользователя(), ПараметрыСоединения);
ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединения);
ВнешниеИсточникиДанных.НашВнешнийИсточник.УстановитьСоединение();
ТекстСообщения = "Соединение с СУБД ""НашВнешнийИсточник"" успешно установлено";
СтруктураВозврата.Вставить("Результат",Истина);
СтруктураВозврата.Вставить("ТекстСообщения",ТекстСообщения);
Возврат СтруктураВозврата;
Исключение
ТекстСообщения = "Не удалось установить соединение с СУБД ""НашВнешнийИсточник"" по причине " + ОписаниеОшибки();
СтруктураВозврата.Вставить("Результат",Ложь);
СтруктураВозврата.Вставить("ТекстСообщения",ТекстСообщения);
Возврат СтруктураВозврата;
КонецПопытки; ПоказатьВ настройках общего модуля, где лежит процедура установки соединения достаточно галки "Сервер" и "Вызов сервера"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
