Integrated security sspi что это
После определения источника данных мы можем к нему подключаться. Для этого создадим проект простого консольного приложения.
Первым делом нам надо определить строку подключения, предоставляющая информацию о базе данных и сервере, к которым предстоит установить подключение:
Data Source : указывает на название сервера. По умолчанию это «.\SQLEXPRESS». Поскольку в строке используется слеш, то в начале строки ставится символ @. Если имя сервера базы данных отличается, то соответственно его и надо использовать.
Initial Catalog : указывает на название базы данных на сервере
Integrated Security : устанавливает проверку подлинности
В нашем случае, так как мы создали проект консольного приложения, то у нас в проекте должен быть файл App.config, который на данный момент имеет следующее определение:
Изменим его, добавив определение строки подключения:
Атрибут connectionString собственно хранит строку подключения, то есть весь тот текст, который мы выше определяли в методе Main. И третий атрибут providerName задает пространство имен провайдера данных. Так как мы будем подключаться к базе данных MS SQL Server, то соответственно мы будем использовать провайдер для SQL Server, функциональность которого заключена в пространстве имен System.Data.SqlClient.
Теперь получим эту строку подключения в приложении:
С помощью объекта ConfigurationManager.ConnectionStrings[«название_строки_подключения»] мы можем получить строку подключения и использовать ее в приложении.
Параметры строки подключения
Application Name : название приложения. Может принимать в качестве значения любую строку. Значение по умолчанию: «.Net SqlClient Data Provide»
AttachDBFileName : хранит полный путь к прикрепляемой базе данных
Connect Timeout : временной период в секундах, через который ожидается установка подключения. Принимает одно из значений из интервала 0–32767. По умолчанию равно 15.
В качестве альтернативного названия параметра может использоваться Connection Timeout
Data Source : название экземпляра SQL Servera, с которым будет идти взаимодействие. Это может быть название локального сервера, например, «EUGENEPC/SQLEXPRESS», либо сетевой адрес.
Initial Catalog : хранит имя базы данных
В качестве альтернативного названия параметра можно использовать Database
В качестве альтернативного названия параметра может использоваться Trusted_Connection
Packet Size : размер сетевого пакета в байтах. Может принимать значение, которое кратно 512. По умолчанию равно 8192
Password : пароль пользователя
User ID : логин пользователя
Например,если для подключения необходим логин и пароль, то мы можем их передать в строку подключения через параметры user id и password :
В чем разница между Integrated Security = True и Integrated Security = SSPI?
В чем разница между SSPI и true в контексте комплексной безопасности?
9 ответов:
Integrated Security=true; не работает во всех поставщиках SQL, он выдает исключение при использовании с OleDb провайдер.
так что в принципе Integrated Security=SSPI; предпочтительнее, так как работает с SQLClient & OleDB провайдер.
Использование Проверки Подлинности Windows
для подключения к серверу баз данных рекомендуется использовать проверку подлинности Windows, обычно называемую интегрированной безопасностью. Чтобы указать проверку подлинности Windows, можно использовать любую из следующих двух пар ключ-значение с поставщиком данных. NET Framework для SQL Server:
однако только второй работает с поставщиком данных .NET Framework OleDb. Если вы установите Integrated Security = true для ConnectionString возникает исключение.
чтобы указать проверку подлинности Windows в поставщике данных. NET Framework для ODBC, вы должны использовать следующую пару ключ-значение.
Integrated Security = False: идентификатор пользователя и пароль указаны в соединении. Встроенная безопасность = true: текущие учетные данные учетной записи Windows используются для проверки подлинности.
Integrated Security = SSPI: это эквивалентно true.
мы можем избежать атрибутов имени пользователя и пароля из строки подключения и использовать интегрированную безопасность
позвольте мне начать с Integrated Security = false
false идентификатор пользователя и пароль в строке подключения.
true учетные данные учетной записи Windows используются для проверки подлинности.
при возникновении сомнений используйте подключения к данным Обозревателя сервера Visual Studio.
Если вы не используете Integrated security=SSPI, то вам нужно жестко закодировать имя пользователя и пароль в строке подключения, что означает «относительно небезопасно», потому что все сотрудники имеют доступ, даже бывший сотрудник может использовать информацию злонамеренно.
Синтаксис строки подключения
Построители строк подключения
Построители строк соединения позволяют создавать во время выполнения синтаксически правильные строки соединения, и поэтому в коде не требуется вручную объединять значения строк соединения. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).
Проверка подлинности Windows
| Поставщик | Синтаксис |
|---|---|
| SqlClient | Integrated Security=true; Integrated Security=SSPI; |
| OleDb | Integrated Security=SSPI; |
| Odbc | Trusted_Connection=yes; |
| OracleClient | Integrated Security=yes; |
Строки подключения SqlClient
Проверка подлинности Windows при работе с SqlClient.
Все следующие формы синтаксиса используют для подключения к базе данных AdventureWorks, размещенной на локальном сервере, проверку подлинности Windows.
Проверка подлинности SQL Server с использованием SqlClient.
Для соединения с SQL Server предпочтительно использовать проверку подлинности Windows. Однако если требуется проверка подлинности SQL Server, то имя пользователя и пароль указываются с помощью приведенного ниже синтаксиса. В этом примере символы звездочки представляют допустимое имя пользователя и пароль.
Проверка подлинности Windows имеет приоритет над именами входа SQL Server. Если указать значение Integrated Security=true, а также ввести имя пользователя и пароль, то имя пользователя и пароль не будут учитываться и будет применяться проверка подлинности Windows.
Подключение к именованному экземпляру SQL Server
Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имя_сервера\имя_экземпляра.
Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения. Свойство DataSource объекта SqlConnection доступно только для чтения.
Изменения версий системы типов
Подключение и присоединение к пользовательским экземплярам SQL Server Express
Пользовательские экземпляры являются одной из возможностей SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не службы.
Использование ключевого слова TrustServerCertificate
Включение шифрования
Чтобы включить шифрование, когда на сервере не представлен сертификат, в диспетчере конфигурации SQL Server необходимо настроить параметры Принудительное шифрование протокола и Доверять сертификату сервера. В этом случае шифрование будет использовать самозаверяющий сертификат сервера, не проверяя наличия подтверждаемого сертификата сервера.
В следующей таблице перечислены все случаи.
| Параметр «Принудительное шифрование протокола» на клиенте | Параметр «Доверять сертификату сервера» на клиенте | Строка или атрибут «Шифровать/Использовать шифрование для подключения к данным» | Строка подключения или атрибут «Доверять сертификату сервера» | Результат |
|---|---|---|---|---|
| нет | Н/Д | Нет (по умолчанию) | Не учитывается | Шифрование отсутствует. |
| нет | Н/Д | Да | Нет (по умолчанию) | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно. |
| нет | Н/Д | Да | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Да | нет | Не учитывается | Не учитывается | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да | Да | Нет (по умолчанию) | Не учитывается | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Да | Да | Да | Нет (по умолчанию) | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да | Да | Да | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
Строки соединения OleDb
Свойство ConnectionString класса OleDbConnection позволяет получить или задать строку подключения для источника данных OLE DB (например, Microsoft Access). Строку подключения OleDb также можно создать во время выполнения с помощью класса OleDbConnectionStringBuilder.
Синтаксис строки соединения OleDb
В строке соединения OleDbConnection необходимо указать имя поставщика. Следующие строки подключения подключают к базе данных Microsoft Access, использующей поставщик Jet. Обратите внимание, что ключевые слова User ID и Password необязательны, если база данных не защищена (по умолчанию).
Если база данных Jet защищена на уровне пользователя, необходимо указать местоположение файла сведений рабочей группы (MDW-файла). Файл сведений рабочей группы используется для проверки учетных данных, указанных в строке подключения.
Соединение с Access/Jet с помощью строки замены DataDirectory
Указывать расположение системной базы данных в строке подключения не требуется, если база данных Access/Jet не защищена. Защита снята по умолчанию, все пользователи соединяются как встроенный пользователь Admin с пустым паролем. База данных Jet остается уязвимой для атаки, даже если правильно реализована безопасность на уровне пользователя. Поэтому в базе данных Access/Jet не рекомендуется хранить конфиденциальные данные, поскольку схема безопасности на основе файловой системы неизбежно обладает определенной уязвимостью.
Соединение с Excel
Поставщик Microsoft Jet используется для подключения с книгой Excel. В следующей строке подключения ключевое слово Extended Properties задает специфические свойства Excel. «HDR=Yes;» показывает, что первая строка содержит имена столбцов, а не данные, а «IMEX=1;» дает указания драйверу всегда считывать «смешанные» столбцы данных как текст.
Синтаксис строки подключения с поставщиком Data Shape
Строки подключения ODBC
Свойство ConnectionString класса OdbcConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения ODBC также поддерживаются построителем OdbcConnectionStringBuilder.
Следующая строка подключения использует текстовый драйвер Microsoft.
Использование строки замены DataDirectory для соединения с Visual FoxPro
Следующий образец строки подключения OdbcConnection демонстрирует использование DataDirectory для соединения с файлом Microsoft Visual FoxPro.
Строки подключения Oracle
Свойство ConnectionString класса OracleConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения Oracle также поддерживаются построителем OracleConnectionStringBuilder.
Дополнительные сведения о синтаксисе строки подключения ODBC см. в разделе ConnectionString.
Синтаксис строки подключения
Построители строк подключения
Поставщик данных Microsoft SqlClient для SQL Server предоставляет описанный ниже построитель строк подключения.
Построители строк соединения позволяют создавать во время выполнения синтаксически правильные строки соединения, и поэтому в коде не требуется вручную объединять значения строк соединения. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).
Проверка подлинности Windows
Для соединения с источниками данных рекомендуется использовать проверку подлинности Windows (которую также называют встроенной безопасностью), если эти источники ее поддерживают. В следующей таблице демонстрируется синтаксис проверки подлинности Windows, который используется в поставщике данных Microsoft SqlClient для SQL Server.
| Поставщик | Синтаксис |
|---|---|
| SqlClient | Integrated Security=true; Integrated Security=SSPI; |
Строки подключений SqlClient
Синтаксис для строки подключения SqlConnection документирован в свойстве SqlConnection.ConnectionString. Свойство ConnectionString используется для возврата или задания строки подключения для базы данных SQL Server. Кроме того, ключевые слова строки подключения сопоставляются со свойствами в SqlConnectionStringBuilder.
Проверка подлинности Windows при работе с SqlClient.
Все следующие формы синтаксиса используют для подключения к базе данных AdventureWorks, размещенной на локальном сервере, проверку подлинности Windows.
Проверка подлинности SQL Server с использованием SqlClient.
Для соединения с SQL Server предпочтительно использовать проверку подлинности Windows. Однако если требуется проверка подлинности SQL Server, то имя пользователя и пароль указываются с помощью приведенного ниже синтаксиса. В этом примере символы звездочки представляют допустимое имя пользователя и пароль.
Проверка подлинности Windows имеет приоритет над именами входа SQL Server. Если указать значение Integrated Security=true, а также ввести имя пользователя и пароль, то имя пользователя и пароль не будут учитываться и будет применяться проверка подлинности Windows.
Подключение к именованному экземпляру SQL Server
Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имя_сервера\имя_экземпляра.
Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения. Свойство DataSource объекта SqlConnection доступно только для чтения.
Изменения в версии системы типов
Подключение к пользовательским экземплярам SQL Server Express и их присоединение
Пользовательские экземпляры являются одной из возможностей SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не службы.
Использование TrustServerCertificate
Включение шифрования
Чтобы включить шифрование, когда на сервере не представлен сертификат, в диспетчере конфигурации SQL Server необходимо настроить параметры Принудительное шифрование протокола и Доверять сертификату сервера. В этом случае шифрование будет использовать самозаверяющий сертификат сервера, не проверяя наличия подтверждаемого сертификата сервера.
В следующей таблице перечислены все случаи.
What is the difference between Integrated Security = True and Integrated Security = SSPI?
What is the difference between SSPI and true in the context of Integrated Security?
9 Answers 9
According to Microsoft they are the same thing.
Integrated Security=true; doesn’t work in all SQL providers, it throws an exception when used with the OleDb provider.
So basically Integrated Security=SSPI; is preferred since works with both SQLClient & OleDB provider.
Using Windows Authentication
To connect to the database server is recommended to use Windows Authentication, commonly known as integrated security. To specify the Windows authentication, you can use any of the following two key-value pairs with the data provider. NET Framework for SQL Server:
However, only the second works with the data provider .NET Framework OleDb. If you set Integrated Security = true for ConnectionString an exception is thrown.
To specify the Windows authentication in the data provider. NET Framework for ODBC, you should use the following key-value pair.
Integrated Security = False : User ID and Password are specified in the connection. Integrated Security = true : the current Windows account credentials are used for authentication.
Integrated Security = SSPI : this is equivalant to true.
We can avoid the username and password attributes from the connection string and use the Integrated Security
Let me start with Integrated Security = false
false User ID and Password are specified in the connection string.
true Windows account credentials are used for authentication.









