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

SQL Server поддерживает два режима проверки подлинности: режим проверки подлинности Windows и режим смешанной проверки подлинности.SQL Server supports two authentication modes, Windows authentication mode and mixed mode.

  • Режим проверки подлинности Windows является режимом по умолчанию. Поскольку эта модель безопасности SQL Server тесно интегрирована с Windows, зачастую ее называют встроенной функцией безопасности.Windows authentication is the default, and is often referred to as integrated security because this SQL Server security model is tightly integrated with Windows. Определенным учетным записям пользователей и групп Windows разрешается входить в SQL Server.Specific Windows user and group accounts are trusted to log in to SQL Server. Пользователи Windows, прошедшие проверку подлинности, не должны предъявлять дополнительные учетные данные.Windows users who have already been authenticated do not have to present additional credentials.

  • Режим смешанной проверки подлинности поддерживает проверку подлинности как средствами Windows, так и SQL Server.Mixed mode supports authentication both by Windows and by SQL Server. Пары имен пользователей и паролей ведутся в SQL Server.User name and password pairs are maintained within SQL Server.

Важно!

Рекомендуется по возможности использовать проверку подлинности Windows.We recommend using Windows authentication wherever possible. При проверке подлинности Windows используется ряд зашифрованных сообщений для проверки подлинности пользователей в SQL Server.Windows authentication uses a series of encrypted messages to authenticate users in SQL Server. При использовании SQL Server имен входа SQL Server имена входа и зашифрованные пароли передаются по сети, что делает их менее безопасными.When SQL Server logins are used, SQL Server login names and encrypted passwords are passed across the network, which makes them less secure.

При использовании проверки подлинности Windows пользователи уже вошли в Windows, и им не нужно отдельно входить еще и в SQL Server.With Windows authentication, users are already logged onto Windows and do not have to log on separately to SQL Server. Ниже SqlConnection.ConnectionString указана проверка подлинности Windows без необходимости указывать имя пользователя или пароль.The following SqlConnection.ConnectionString specifies Windows authentication without requiring users to provide a user name or password.

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

Примечание

Имена входа отличаются от пользователей базы данных.Logins are distinct from database users. Имена входа или группы Windows необходимо сопоставлять с пользователями базы данных или ролями при помощи отдельной операции.You must map logins or Windows groups to database users or roles in a separate operation. После этого пользователям или ролям предоставляются разрешения на доступ к объектам базы данных.You then grant permissions to users or roles to access database objects.

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

Обычно проверка подлинности Windows является наилучшим вариантом в следующих ситуациях.Windows authentication is usually the best choice in the following situations:

  • Имеется контроллер домена.There is a domain controller.

  • Приложение и база данных находятся на одном компьютере.The application and the database are on the same computer.

  • Вы используете экземпляр SQL Server Express или LocalDB.You are using an instance of SQL Server Express or LocalDB.

Имена входа SQL Server часто используются в следующих ситуациях.SQL Server logins are often used in the following situations:

  • При наличии рабочей группы.If you have a workgroup.

  • Пользователи подключаются из разных, не доверенных доменов.Users connect from different, non-trusted domains.

  • Интернет – приложения, например ASP.NET.Internet applications, such as ASP.NET.

Примечание

При использовании проверки подлинности Windows имена входа SQL Server не отключаются.Specifying Windows authentication does not disable SQL Server logins. Чтобы отключить имена входа SQL Server с правами доступа, используйте инструкцию Transact-SQL ALTER LOGIN DISABLE.Use the ALTER LOGIN DISABLE Transact-SQL statement to disable highly-privileged SQL Server logins.

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

SQL Server поддерживает три типа входа:SQL Server supports three types of logins:

  • Учетная запись локального пользователя Windows или учетная запись доверенного домена.A local Windows user account or trusted domain account. SQL Server доверяет проверку подлинности учетных записей пользователей Windows самой системе Windows.SQL Server relies on Windows to authenticate the Windows user accounts.

  • Группа пользователей Windows.Windows group. В случае предоставления доступа группе пользователей Windows право доступа получают все имена пользователей, входящие в эту группу.Granting access to a Windows group grants access to all Windows user logins that are members of the group.

  • Имя входа SQL Server.SQL Server login. SQL Server хранит в базе данных master имя пользователя и хэш пароля путем использования внутренних методов проверки подлинности при попытке входа в базу данных.SQL Server stores both the username and a hash of the password in the master database, by using internal authentication methods to verify login attempts.

Примечание

SQL Server предоставляет имена входа, созданные из сертификатов или асимметричных ключей, которые используются только для подписывания кода.SQL Server provides logins created from certificates or asymmetric keys that are used only for code signing. Они не могут использоваться для подключения к SQL Server.They cannot be used to connect to SQL Server.

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

При необходимости использовать режим смешанной проверки подлинности следует создать имена входа SQL Server, которые хранятся в SQL Server.If you must use mixed mode authentication, you must create SQL Server logins, which are stored in SQL Server. Затем имя пользователя и пароль SQL Server нужно будет вводить во время выполнения.You then have to supply the SQL Server user name and password at run time.

Важно!

SQL Server устанавливается с именем входа SQL Server sa (сокращение от «system administrator»).SQL Server installs with a SQL Server login named sa (an abbreviation of "system administrator"). Назначьте имени входа sa надежный пароль и не используйте имя входа sa в приложениях.Assign a strong password to the sa login and do not use the sa login in your application. Имя входа sa сопоставляется предопределенной роли сервера sysadmin, которая имеет безотзывные административные учетные данные для всего сервера.The sa login maps to the sysadmin fixed server role, which has irrevocable administrative credentials on the whole server. Если организатор атаки получит доступ с учетными данными системного администратора, потенциальный ущерб системе может быть огромным.There are no limits to the potential damage if an attacker gains access as a system administrator. Все члены группы Windows BUILTIN\Administrators (группы локального администратора) по умолчанию являются членами роли sysadmin, но их можно удалить из этой роли.All members of the Windows BUILTIN\Administrators group (the local administrator's group) are members of the sysadmin role by default, but can be removed from that role.

SQL Server предоставляет механизмы политики паролей Windows для SQL Serverных имен входа при работе в Windows Server 2003Windows Server 2003 или более поздних версиях.SQL Server provides Windows password policy mechanisms for SQL Server logins when it is running on Windows Server 2003Windows Server 2003 or later versions. Политика сложности паролей позволяет отражать атаки с использованием простого перебора путем увеличения числа возможных паролей.Password complexity policies are designed to deter brute force attacks by increasing the number of possible passwords. SQL Server могут применять те же политики сложности и истечения срока Windows Server 2003Windows Server 2003 действия, которые используются в для паролей, используемых в SQL Server.SQL Server can apply the same complexity and expiration policies used in Windows Server 2003Windows Server 2003 to passwords used inside SQL Server.

Важно!

Объединение строк соединения из ввода пользователя может привести к уязвимости к атакам внедрения данных в строку соединения.Concatenating connection strings from user input can leave you vulnerable to a connection string injection attack. Чтобы создавать синтаксически допустимые строки соединения во время выполнения, используйте SqlConnectionStringBuilder.Use the SqlConnectionStringBuilder to create syntactically valid connection strings at run time. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).For more information, see Connection String Builders.

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

Дополнительные сведения см. в следующих ресурсах.For more information, see the following resources.

ResourceResource ОписаниеDescription
СубъектыPrincipals Описывает имена входа и другие субъекты безопасности в SQL Server.Describes logins and other security principals in SQL Server.

См. такжеSee also