Проверка подлинности в SQL Server (ADO.NET)

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

  • Режим проверки подлинности Windows является режимом по умолчанию. Поскольку эта модель безопасности SQL Server тесно интегрирована с Windows, зачастую ее называют встроенной функцией безопасности. Определенным учетным записям пользователей и групп Windows разрешается входить в SQL Server. Пользователи 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.

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

  • При наличии рабочей группы.

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

  • Интернет-приложения, например ASP.NET.

ПримечаниеПримечание

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

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

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

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

  • Группа пользователей Windows. В случае предоставления доступа группе пользователей Windows право доступа получают все имена пользователей, входящие в эту группу.

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

ПримечаниеПримечание

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

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

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

Примечание о безопасностиПримечание по безопасности

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

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

Примечание о безопасностиПримечание по безопасности

Объединение строк соединения из ввода пользователя может привести к уязвимости к атакам внедрения данных в строку соединения.Чтобы создавать синтаксически допустимые строки соединения во время выполнения, используйте SqlConnectionStringBuilder.Дополнительные сведения см. в разделе Построители строк соединения (ADO.NET).

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

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

Ресурс

Описание

Участники в электронной документации по SQL Server 2008

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

Участники в электронной документации по SQL Server 2005

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

Имена входа в электронной документации по SQL Server 2000

Описывает имена входа и проверку подлинности в SQL Server 2000.

См. также

Основные понятия

Сценарии защиты приложений в SQL Server (ADO.NET)

Другие ресурсы

Защита приложений ADO.NET

Соединение с источником данных (ADO.NET)

Строки соединения (ADO.NET)