При использовании Trusted_Connection = true и аутентификации SQL Server это повлияет на производительность? - PullRequest
44 голосов
/ 29 октября 2009

Если в строке подключения указано Trusted_Connection=true в режиме аутентификации SQL Server, это повлияет на производительность моего веб-приложения?

Ответы [ 4 ]

122 голосов
/ 29 октября 2009

Не уверен на 100%, что вы имеете в виду:

Trusted_Connection=True;

IS с использованием учетных данных Windows и на 100% эквивалентно:

Integrated Security=SSPI;

или

Integrated Security=true;

Если вы не хотите использовать встроенное безопасное / доверенное соединение, вам необходимо явно указать идентификатор пользователя и пароль в строке соединения (и не указывать ссылку на Trusted_Connection или Integrated Security)

server=yourservername;database=yourdatabase;user id=YourUser;pwd=TopSecret

Только в этом случае используется режим аутентификации SQL Server.

Если присутствует какой-либо из этих двух параметров (Trusted_Connection=true или Integrated Security=true/SSPI), то для аутентификации на SQL Server используются учетные данные Windows текущего пользователя, и любой параметр user iD= будет игнорируется и не используется.

Для справки см. Сайт Строки подключения для SQL Server 2005 с множеством примеров и пояснений.

Использование проверки подлинности Windows является предпочтительным и рекомендуемым способом выполнения действий, но это может повлечь небольшую задержку, поскольку SQL Server придется проверять подлинность ваших учетных данных в Active Directory (обычно). Я понятия не имею, насколько эта небольшая задержка может быть, и я не нашел никаких ссылок на это.


Подводя итог:

Если указать в строке подключения Trusted_Connection=True;, Integrated Security=SSPI; или Integrated Security=true;

==> ТО (и только потом) у вас Аутентификация Windows происходит. Любая настройка user id= в строке подключения будет игнорироваться .


Если вы НЕ указываете одну из этих настроек,

==> тогда у вас НЕ происходит аутентификация Windows (будет использоваться режим аутентификации SQL)


8 голосов
/ 29 октября 2009

Когда вы используете надежные соединения, имя пользователя и пароль игнорируются, поскольку SQL Server использует проверку подлинности Windows.

4 голосов
/ 29 октября 2009

Вероятно, это приведет к некоторым потерям производительности при создании соединения, но, поскольку соединения объединяются, они создаются только один раз, а затем используются повторно, поэтому это не будет иметь никакого значения для вашего приложения. Но как всегда: измерить.


UPDATE:

Существует два режима аутентификации:

  1. Режим проверки подлинности Windows (соответствует доверенному соединению). Клиенты должны быть членами домена.
  2. Режим аутентификации SQL Server. Клиенты отправляют имя пользователя / пароль при каждом подключении
1 голос
/ 02 мая 2013

Если ваше веб-приложение настроено для олицетворения клиента, то использование доверенного соединения потенциально может оказать негативное влияние на производительность. Это связано с тем, что каждый клиент должен использовать свой пул соединений (с учетными данными клиента).

Большинство веб-приложений не используют олицетворение / делегирование и, следовательно, не имеют этой проблемы.

См. эту статью MSDN для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...