![]() |
|
Подключение к SQL с Windows авторизацией | ☑ | ||
---|---|---|---|---|
0
Бовка
15.07.14
✎
13:26
|
Всем привет!
Не могу победить проблему. Есть SQL Server 2008 R2 с установленной Win авторизацией. Поставить смешанную авторизацию нельзя по определенным причинам. Мне нужно оттуда смотреть вьюху. Подскажите, умеет ли 1С 8.2 подключаться с скулю с таким режимом авторизации? В поиске есть устаревшие сведения, что не умеет, но может что-то поменялось уже. Спасибо! |
|||
1
ДенисЧ
15.07.14
✎
13:26
|
Как собираешься подключаться?
|
|||
2
Бовка
15.07.14
✎
13:29
|
(1) Пробовал через внешние источники данных, стандартным драйвером SQL, не работает
|
|||
3
Fish
гуру
15.07.14
✎
13:30
|
(2) Учу пользоваться поиском. Дорого:
v8: Подключение сервера 1с82 к БД MS SQL. Windows authorization |
|||
4
Бовка
15.07.14
✎
13:35
|
(3) Это не совсем то, мне нужен коннектор из базы к стороннему скулю.
|
|||
5
ДенисЧ
15.07.14
✎
13:40
|
(4) Подключись по ADO
|
|||
6
oleg_km
15.07.14
✎
13:57
|
(2) Что именно не работает? Что такое "стандартным драйвером SQL"?
|
|||
7
Бовка
15.07.14
✎
15:16
|
(6) Вот такая конструкция не работает
СтрокаПодключения = "Provider=SQLOLEDB.1"+ ";Persist Security Info=True" ";UID=domain_name\sp_admin"+ ";Pwd="+ ";Data Source=sql_name\instance_name"+ ";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=;Use Encryption for Data=False;Tag with column collation when possible=False;"+ "Initial Catalog=master;"; Подключение = Новый COMОбъект("ADODB.Connection"); Ошибка: Ошибка входа пользователя "domain_name\sp_admin". |
|||
8
ДенисЧ
15.07.14
✎
15:23
|
(7) Убери UID и PWD, и поставь Trusted Connections=Yes
И запускай на клиенте |
|||
9
Бовка
16.07.14
✎
10:57
|
(8) Это не работает для случая, когда нужно запустить коннект под другим доменным пользователем. У меня как раз такой случай.
Реально ли вообще поднять коннект, указав данные другой доменной учетки? |
|||
10
ДенисЧ
16.07.14
✎
10:59
|
Именно доменной?
А у неё, этой учётки, есть право на доступ? |
|||
11
Бовка
16.07.14
✎
11:00
|
(10) Да, под SSMS все запускается норм
|
|||
12
oleg_km
16.07.14
✎
11:21
|
(9) Реально, но не очень. UID= ;Pwd= задействуются только при скулевой авторизации. Если нужна доменная авторизация, то нужно сначала имперсонировать вызывающий процесс под учетку нужного пользователя, а потом дернуть ADO с опцией Trusted Connections=Yes. И то, можно нарваться на делегирование. Поэтому я советую сделать на скуле спецучетку для твоей программы и подключаться с опциями UID= ;Pwd=.
|
|||
13
ChiginAV
16.07.14
✎
11:27
|
(0) Подключение = Новый COMОбъект("ADODB.Connection");
Подключение.Open("driver={SQL Server};server=SrvName;database=DBName;UserID=Domain\User;pwd=Password"); |
|||
14
oleg_km
16.07.14
✎
11:37
|
(13) Сам так пробовал?
|
|||
15
ChiginAV
16.07.14
✎
11:59
|
(14) Да
|
|||
16
oleg_km
16.07.14
✎
12:15
|
(15) Вообще-то:
User ID -или- UID -или- Неприменимо Учетная запись входа SQL Server. Не рекомендуется. Чтобы обеспечить наивысший уровень безопасности, настоятельно рекомендуется использовать вместо этого ключевое слово Integrated Security или Trusted_Connection. SqlCredential более безопасный способ определения учетные данные для подключения с использованием проверки подлинности SQL Server. Длина ИД пользователя должна быть 128 символа или меньше. Integrated Security -или- Trusted_Connection false Если задано значение false, в подключении заданы также параметры User ID и Password. Если задано значение true, для проверки подлинности используются текущие учетные данные Windows. Распознаваемые значения: true, false, yes, no и sspi (настоятельно рекомендуется), что эквивалентно true. Если ИД пользователя и пароль заданы и встроенные средства безопасности установлено значение "true", ИД пользователя и пароль будут проигнорированы, и использована встроенная безопасность. http://msdn.microsoft.com/ru-ru/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx |
|||
17
Бовка
16.07.14
✎
12:19
|
(12) Как выход из этой ситуации я вижу только написание ВК, в которой будут сконфигурированы нужные параметры под нужным пользователем. Из самой 1С запустить под другим доменным пользователем не получится, ну или как вариант, да, имперсонировать процесс 1С под учетку нужного пользователя.
(13) так не работает, проверено не раз! |
|||
18
ChiginAV
16.07.14
✎
12:24
|
(16),(17) Во всяком случае, код в (13) отрабатывает без исключений
|
|||
19
oleg_km
16.07.14
✎
12:30
|
(18) Я посмотрел в отладчике, в коллекции Errors появляется ошибка ошибочные параметры, а в строке очищаются User ID и Password. Т.е. ADO молча исправляет эту ошибку.
(17) Ну если так проще, то флаг в руки. Может тогда запустить весь процесс 1С под другим пользователем например через Runas или WMI, через параметры указать, чтобы отработал нужную процедуру, которая дернет скуль? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |