Аутентификация в SQL Server

Скачать ADO.NET

SQL Server поддерживает два режима проверки подлинности: режим проверки подлинности Windows и режим смешанной проверки подлинности.

  • Режим проверки подлинности Windows является режимом по умолчанию. Поскольку эта модель безопасности SQL Server тесно интегрирована с Windows, часто ее называют встроенной функцией безопасности. Для входа в SQL Server в список надежных элементов вносятся определенные учетные записи пользователей и группы Windows. Пользователям Windows, которые уже прошли аутентификацию, не нужно представлять дополнительные учетные данные.

  • Режим смешанной аутентификации поддерживает проверку подлинности как средствами Windows, так и средствами SQL Server. Пары имен пользователей и паролей хранятся в SQL Server.

Важно!

Мы рекомендуем использовать проверку подлинности Windows везде, где это возможно. При проверке подлинности Windows используется ряд зашифрованных сообщений для проверки подлинности пользователей в SQL Server. А при использовании имен входа SQL Server имена входа и зашифрованные пароли SQL Server передаются по сети, что делает их менее защищенными.

При использовании проверки подлинности Windows пользователи уже вошли в Windows и им не нужно отдельно входить еще и в SQL Server. Следующая строка SqlConnection.ConnectionString задает проверку подлинности Windows, не требуя имени пользователя или пароля.

"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;"

Примечание

Имена для входа отличаются от пользователей базы данных. Вы должны сопоставить имена для входа или группы Windows пользователям базы данных или ролям в отдельной операции. Затем вы предоставляете пользователям или ролям разрешения на доступ к объектам базы данных.

Сценарии проверки подлинности

Проверка подлинности Windows обычно является лучшим выбором в следующих ситуациях:

  • Есть контроллер домена.

  • Приложение и база данных находятся на одном компьютере.

  • Используется экземпляр SQL Server Express или LocalDB.

Имена для входа SQL-сервера часто используются в следующих ситуациях:

  • Если у вас есть рабочая группа.

  • Пользователи соединяются из разных, ненадежных доменов.

  • Существуют интернет-приложения, такие как ASP.NET.

Примечание

При использовании аутентификации Windows имена входа SQL Server не отключаются. Чтобы отключить имена входа SQL Server с правами доступа, используйте инструкцию Transact-SQL ALTER LOGIN DISABLE.

Типы имен для входа

В SQL Server существует три типа имен входа.

  • Локальная учетная запись пользователя Windows или доверенная учетная запись домена. SQL Server доверяет проверку подлинности учетных записей пользователей Windows самой системе Windows.

  • Группа Windows. Предоставление доступа группе Windows обеспечивает доступ ко всем именам входа пользователей Windows, которые являются членами группы.

  • Имя входа SQL Server. SQL Server хранит в базе данных master имя пользователя и хэш пароля путем использования внутренних методов проверки подлинности при попытке входа в базу данных.

Примечание

SQL Server предоставляет имена входа, созданные из сертификатов или асимметричных ключей, которые используются только для подписывания кода. Они не могут использоваться для подключения к SQL Server.

Режим смешанной проверки подлинности

При необходимости использовать режим смешанной проверки подлинности следует создать имена входа SQL Server, которые хранятся в SQL Server. Затем имя пользователя и пароль SQL Server нужно будет вводить во время выполнения.

Важно!

SQL Server устанавливается с логином SQL Server с именем sa. (сокращение от "system administrator"). Назначьте надежный пароль для имени входа sa и не используйте имя входа sa в вашем приложении. Карты входа sa на фиксированную серверную роль sysadmin, которая имеет безотзывные административные учетные данные на всем сервере. Нет никаких ограничений на потенциальный ущерб, если злоумышленник получит доступ в качестве системного администратора. Все члены группы Windows BUILTIN\Administrators (группы локального администратора) по умолчанию являются членами роли sysadmin, но их можно удалить из этой роли.

Важно!

Сосредоточение строк соединения из пользовательского ввода может сделать ваш сервер уязвимым к атаке путем внедрения строки подключения. Используйте SqlConnectionStringBuilder для создания синтаксически корректных строк подключения во время выполнения.

Внешние ресурсы

Для получения дополнительных сведений см. следующие ресурсы.

Ресурс Description
Субъекты Описывает имена входа и других участников безопасности, имеющихся в SQL Server.

Дальнейшие действия