SharePoint 2010 BCS игнорирует имя пользователя / пароль в строке подключения

StackOverflow https://stackoverflow.com/questions/2670764

  •  28-09-2019
  •  | 
  •  

Вопрос

Вот мой сценарий.

У меня есть SharePoint 2010, работающий на одном сервере, с помощью SQL Server работает на другом. Обе машины находятся в том же домене, но участвующие в логинах являются локальными для каждой машины. SharePoint работает как NT Authory Network Service, если это имеет значение.

Я создал BCS, которые тянут данные с удаления SQL Server. Строка подключения появляется следующим образом: Data Source={0}; Initial Catalog={1};User Id={2}; Password={3}; Integrated Security=SSPI. Отказ Я подтвердил, что соединительная строка хорошо сформирована, однажды все заменены {x}.

Это работает просто хорошо, при условии, что вы получаете доступ к сайту SharePoint из браузера, работающего на одной и той же машине (машина, хостинг SharePoint, то есть, чтобы сказать). Как только вы подключите к нему из браузера на другой машине, не удается.

Слование профилировщика на SQL Server показывает, что когда SharePoint доступа к «локально», пользовательские запросы - это запись вошедшей учетной записи. Когда он работает удаленно, пользователь «аноним». Из-за разрешений счета, первые успехи, в то время как последний терпит неудачу. Ни в коем случае пользователь на самом деле тот, который приведен в строке подключения.

Этот ответ Указывает, что проблема, вероятно, связана с объединением подключения, но не помогло мне решить проблему.

Итак, в двух словах, как я могу получить этот BCS, чтобы на самом деле соблюдать соединение String username / Пара пароля? Или, неспособность, как я могу добиться эквивалентного конца? Настройка сервера (SharePoint On One, SQL Server на другой) не обсуждается; К сожалению.

Это было полезно?

Решение

Вы можете иметь интегрированную безопасность Хорна Вы можете иметь аутентификацию SQL. Но вы не можете их смешивать. Как только вы указали Integrated Security=SSPI, ваше имя пользователя и пароль будут игнорироваться, так как вместо этого будет использоваться встроенная безопасность. Если вы хотите указать пользователь аутентификации SQL и пароль, удалите часть «встроенной безопасности».

Как и в случае любого встроенного соединения аутентификации, удаленные серверы попадают в ограничение ограниченной делегирования, и они аутентифицируются как анонимные. Чтобы включить примерные учетные данные NT, чтобы пройти следующий хоп (SQL Server), должна быть включена ограниченная делегация, см.:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top