В чем разница между Integrated Security = True и Integrated Security = SSPI?
у меня есть два приложения, которые используют интегрированную систему безопасности. Один назначает Integrated Security = true в строке подключения, а остальные наборы Integrated Security = SSPI.
В чем разница между SSPI и true в контексте комплексной безопасности?
9 ответов:
по данным Microsoft это одно и то же.
, когда
false, идентификатор пользователя и пароль в подключении. При значении true для проверки подлинности используются текущие учетные данные учетной записи Windows.
Признанные значенияtrue,false,yes,noиsspi(настоятельно рекомендуется), что эквивалентноtrue.
Integrated Security=true;не работает во всех поставщиках SQL, он выдает исключение при использовании сOleDbпровайдер.так что в принципе
Integrated Security=SSPI;предпочтительнее, так как работает сSQLClient&OleDBпровайдер.вот полный набор синтаксисов в соответствии с MSDN - синтаксис строки подключения (ADO.NET)
Использование Проверки Подлинности Windows
для подключения к серверу баз данных рекомендуется использовать проверку подлинности Windows, обычно называемую интегрированной безопасностью. Чтобы указать проверку подлинности Windows, можно использовать любую из следующих двух пар ключ-значение с поставщиком данных. NET Framework для SQL Server:
Integrated Security = true; Integrated Security = SSPI;однако только второй работает с поставщиком данных .NET Framework OleDb. Если вы установите
Integrated Security = trueдля ConnectionString возникает исключение.чтобы указать проверку подлинности Windows в поставщике данных. NET Framework для ODBC, вы должны использовать следующую пару ключ-значение.
Trusted_Connection = yes;источник: MSDN: работа со строками подключения
многие вопросы получают ответы, если мы используем
.Net Reflectorчтобы увидеть фактический кодSqlConnection:)trueиsspiто же самое:internal class DbConnectionOptions ... internal bool ConvertValueToIntegratedSecurityInternal(string stringValue) { if ((CompareInsensitiveInvariant(stringValue, "sspi") || CompareInsensitiveInvariant(stringValue, "true")) || CompareInsensitiveInvariant(stringValue, "yes")) { return true; } } ...изменить 20.02.2018 Теперь в .Net Core мы можем увидеть его открытый исходный код на github! Поиск ConvertValueToIntegratedSecurityinternal метод:
Integrated Security = False: идентификатор пользователя и пароль указаны в соединении. Встроенная безопасность = true: текущие учетные данные учетной записи Windows используются для проверки подлинности.
Integrated Security = SSPI: это эквивалентно true.
мы можем избежать атрибутов имени пользователя и пароля из строки подключения и использовать интегрированную безопасность
позвольте мне начать с
Integrated Security = false
falseидентификатор пользователя и пароль в строке подключения.trueучетные данные учетной записи Windows используются для проверки подлинности.признан значения
true,false,yes,noиSSPI.если
User IDиPasswordуказаны и Интегрированная безопасность установлена вtrue, потомUser IDиPasswordбудет проигнорировано и интегрировано Безопасность будет использоваться
обратите внимание, что строки подключения специфичны для что и как вы подключаетесь к данным. Они подключаются к той же базе данных, но первый использует поставщик данных .NET Framework для SQL Server. Интегрированная безопасность=True не будет работать для OleDb.
- Источник Данных=.; Initial Catalog=aspnetdb; Integrated Security=True
- Provider=SQLOLEDB; Data Source=.;Комплексная безопасность=SSPI;начальная Каталог=aspnetdb
при возникновении сомнений используйте подключения к данным Обозревателя сервера Visual Studio.
- что это sspi?
- Синтаксис Строк Подключения
True допустимо только при использовании библиотеки .NET SqlClient. Это недопустимо при использовании OLEDB. Где SSPI - это bvaid в обоих случаях вы используете библиотеку .net SqlClient или OLEDB.
на мой взгляд,
Если вы не используете Integrated security=SSPI, то вам нужно жестко закодировать имя пользователя и пароль в строке подключения, что означает "относительно небезопасно", потому что все сотрудники имеют доступ, даже бывший сотрудник может использовать информацию злонамеренно.

Comments