- Аутентификация в SQL Server Authentication in SQL Server
- Сценарии проверки подлинности Authentication Scenarios
- Типы имен входа Login Types
- Режим смешанной проверки подлинности Mixed Mode Authentication
- Внешние ресурсы External Resources
- Выбор режима проверки подлинности Choose an Authentication Mode
- Настройка режима проверки подлинности Configuring the Authentication Mode
- Соединение с использованием проверки подлинности Windows Connecting Through Windows Authentication
- Соединение с использованием проверки подлинности SQL Server Connecting Through SQL Server Authentication
- Определение политик паролей на локальном компьютере To determine the password policies of the local computer
- Недостатки проверки подлинности SQL Server Disadvantages of SQL Server Authentication
- Преимущества проверки подлинности SQL Server Advantages of SQL Server Authentication
Аутентификация в SQL Server Authentication 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. Для входа в SQL Server в список надежных элементов вносятся определенные учетные записи пользователей и группы Windows. 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.
Имена для входа отличаются от пользователей базы данных. 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-сервера часто используются в следующих ситуациях: 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 обеспечивает доступ ко всем именам входа пользователей 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.
SQL Server предоставляет механизмы политики паролей Windows для имен входа SQL Server. SQL Server provides Windows password policy mechanisms for SQL Server logins. Политика сложности паролей позволяет отражать атаки, использующие простой перебор, путем увеличения числа возможных паролей. Password complexity policies are designed to deter brute force attacks by increasing the number of possible passwords. SQL Server могут применять те же политики сложности и срока действия к паролям, которые используются в SQL Server. SQL Server can apply the same complexity and expiration policies 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.
Выбор режима проверки подлинности Choose an Authentication Mode
Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions)
Во время процесса установки следует выбрать режим проверки подлинности для компонента Компонент Database Engine Database Engine . During setup, you must select an authentication mode for the Компонент Database Engine Database Engine . Существует два возможных режима: режим проверки подлинности Windows и смешанный режим. There are two possible modes: Windows Authentication mode and mixed mode. Режим проверки подлинности Windows включает проверку подлинности Windows и отключает проверку подлинности SQL Server SQL Server . Windows Authentication mode enables Windows Authentication and disables SQL Server SQL Server Authentication. В смешанном режиме включены как проверка подлинности Windows, так и проверка подлинности SQL Server SQL Server . Mixed mode enables both Windows Authentication and SQL Server SQL Server Authentication. Проверка подлинности Windows доступна всегда, и отключить ее нельзя. Windows Authentication is always available and cannot be disabled.
Настройка режима проверки подлинности Configuring the Authentication Mode
Если во время установки был выбран смешанный режим проверки подлинности, необходимо задать и подтвердить надежный пароль для встроенной учетной записи системного администратора SQL Server SQL Server с именем sa. If you select Mixed Mode Authentication during setup, you must provide and then confirm a strong password for the built-in SQL Server SQL Server system administrator account named sa. Учетная запись sa устанавливает соединения с помощью проверки подлинности SQL Server SQL Server . The sa account connects by using SQL Server SQL Server Authentication.
Если во время установки была выбрана проверка подлинности Windows, программа установки создаст учетную запись sa для проверки подлинности SQL Server SQL Server , но она будет отключена. If you select Windows Authentication during setup, Setup creates the sa account for SQL Server SQL Server Authentication but it is disabled. Если позже переключиться на смешанный режим проверки подлинности и потребуется учетная запись sa, ее будет нужно включить. If you later change to Mixed Mode Authentication and you want to use the sa account, you must enable the account. Любая учетная запись Windows или SQL Server SQL Server может быть настроена в качестве системного администратора. Any Windows or SQL Server SQL Server account can be configured as a system administrator. Поскольку учетная запись sa широко известна и часто является целью злонамеренных пользователей, ее не рекомендуется включать (за исключением тех случаев, когда это необходимо приложению). Because the sa account is well known and often targeted by malicious users, do not enable the sa account unless your application requires it. Никогда не указывайте пустой или простой пароль для учетной записи sa. Never set a blank or weak password for the sa account. Сведения о переключении проверки подлинности Windows на смешанный режим проверки подлинности и использовании проверки подлинности SQL Server SQL Server см. в статье Изменение режима проверки подлинности сервера. To change from Windows Authentication mode to Mixed Mode Authentication and use SQL Server SQL Server Authentication, see Change Server Authentication Mode.
Соединение с использованием проверки подлинности Windows Connecting Through Windows Authentication
Когда пользователь выполняет подключение под пользовательской учетной записью Windows, SQL Server SQL Server проверяет имя учетной записи и пароль с помощью токена участника Windows в операционной системе. When a user connects through a Windows user account, SQL Server SQL Server validates the account name and password using the Windows principal token in the operating system. Это означает, что удостоверение пользователя было подтверждено Windows. This means that the user identity is confirmed by Windows. SQL Server SQL Server не запрашивает пароль и не выполняет проверку удостоверения. does not ask for the password, and does not perform the identity validation. Проверка подлинности Windows является проверкой подлинности по умолчанию; она обеспечивает более высокий уровень безопасности, чем проверка подлинности SQL Server SQL Server . Windows Authentication is the default authentication mode, and is much more secure than SQL Server SQL Server Authentication. Режим проверки подлинности Windows использует протокол безопасности Kerberos, реализует политику паролей в отношении проверки сложности надежных паролей, поддерживает блокировку учетных записей и истечение срока пароля. Windows Authentication uses Kerberos security protocol, provides password policy enforcement with regard to complexity validation for strong passwords, provides support for account lockout, and supports password expiration. Соединение, установленное с помощью проверки подлинности Windows, иногда называется доверительным соединением, поскольку SQL Server SQL Server доверяет учетным данным, предоставляемым Windows. A connection made using Windows Authentication is sometimes called a trusted connection, because SQL Server SQL Server trusts the credentials provided by Windows.
С помощью проверки подлинности Windows можно создать группы Windows на уровне домена, а имя входа можно создать на уровне SQL Server SQL Server для всей группы. By using Windows Authentication, Windows groups can be created at the domain level, and a login can be created on SQL Server SQL Server for the entire group. Управление доступом на уровне домена позволяет упростить администрирование учетных записей. Managing access from at the domain level can simplify account administration.
По возможности используйте аутентификацию Windows. When possible, use Windows authentication.
Соединение с использованием проверки подлинности SQL Server Connecting Through SQL Server Authentication
Если используется проверка подлинности SQL Server SQL Server , в SQL Server SQL Server создаются имена входа, которые не основаны на учетных записях пользователей Windows. When using SQL Server SQL Server Authentication, logins are created in SQL Server SQL Server that are not based on Windows user accounts. И имя пользователя, и пароль создаются с помощью SQL Server SQL Server и хранятся в SQL Server SQL Server . Both the user name and the password are created by using SQL Server SQL Server and stored in SQL Server SQL Server . Пользователи, подключающиеся с помощью проверки подлинности SQL Server SQL Server , должны предоставлять свои учетные данные (имя входа и пароль) каждый раз при установке соединения. Users connecting using SQL Server SQL Server Authentication must provide their credentials (login and password) every time that they connect. При использовании проверки подлинности SQL Server SQL Server необходимо задавать надежные пароли для всех учетных записей SQL Server SQL Server . When using SQL Server SQL Server Authentication, you must set strong passwords for all SQL Server SQL Server accounts. Рекомендации по выбору надежного пароля см. в разделе Strong Passwords. For strong password guidelines, see Strong Passwords.
Для имен входа SQL Server SQL Server доступны три дополнительные политики паролей. Three optional password policies are available for SQL Server SQL Server logins.
Пользователь должен сменить пароль при следующем входе User must change password at next login
Требует, чтобы пользователь сменил пароль при следующем подключении. Requires the user to change the password the next time that the user connects. Сменить пароль можно с помощью среды SQL Server Management Studio SQL Server Management Studio . The ability to change the password is provided by SQL Server Management Studio SQL Server Management Studio . Если используется этот режим, сторонние разработчики программного обеспечения должны предоставлять данную функцию. Third-party software developers should provide this feature if this option is used.
Задать срок окончания действия пароля Enforce password expiration
Для имен входа SQL Server SQL Server будет принудительно реализовываться политика максимального возраста паролей. The maximum password age policy of the computer is enforced for SQL Server SQL Server logins.
Требовать использование политики паролей Enforce password policy
Для имен входа SQL Server SQL Server будут принудительно реализовываться политики паролей Windows. The Windows password policies of the computer are enforced for SQL Server SQL Server logins. Это включает длину и сложность паролей. This includes password length and complexity. Эта возможность обеспечивается API NetValidatePasswordPolicy , который доступен только в Windows Server 2003 Windows Server 2003 и более поздних версиях. This functionality depends on the NetValidatePasswordPolicy API, which is only available in Windows Server 2003 Windows Server 2003 and later versions.
Определение политик паролей на локальном компьютере To determine the password policies of the local computer
В меню Пуск выберите команду Выполнить. On the Start menu, click Run.
В диалоговом окне Выполнить введите secpol.msc, а затем нажмите кнопку ОК. In the Run dialog box, type secpol.msc, and then click OK.
В приложении Локальная политика безопасности разверните узлы Настройки безопасности и Политики учетных записей, затем щелкните Политика паролей. In the Local Security Settings application, expand Security Settings, expand Account Policies, and then click Password Policy.
Политики паролей будут описаны в панели результатов. The password policies are described in the results pane.
Недостатки проверки подлинности SQL Server Disadvantages of SQL Server Authentication
Если пользователь является пользователем домена Windows, имеющим имя входа и пароль Windows, то для подключения он все равно должен предоставить другое имя входа и пароль ( SQL Server SQL Server ). If a user is a Windows domain user who has a login and password for Windows, they must still provide another ( SQL Server SQL Server ) login and password to connect. Многим пользователям сложно помнить несколько имен входа и паролей. Keeping track of multiple names and passwords is difficult for many users. Необходимость предоставлять учетные данные SQL Server SQL Server при каждом подключении к базе данных может раздражать. Having to provide SQL Server SQL Server credentials every time that one connects to the database can be annoying.
SQL Server SQL Server не может использоваться протокол безопасности Kerberos. Authentication cannot use Kerberos security protocol.
ОС Windows предоставляет дополнительные политики паролей, недоступные для имен входа SQL Server SQL Server . Windows offers additional password policies that are not available for SQL Server SQL Server logins.
Зашифрованный пароль имени входа для проверки подлинности SQL Server SQL Server необходимо передавать по сети во время установления соединения. The encrypted SQL Server SQL Server Authentication login password, must be passed over the network at the time of the connection. Некоторые приложения, которые устанавливают соединение автоматически, сохраняют пароль на клиенте. Some applications that connect automatically will store the password at the client. Эти дополнительные точки, на которые может быть направлена атака. These are additional attack points.
Преимущества проверки подлинности SQL Server Advantages of SQL Server Authentication
Позволяет SQL Server SQL Server поддерживать более старые приложения и приложения, поставляемые сторонними производителями, для которых необходима проверка подлинности SQL Server SQL Server . Allows SQL Server SQL Server to support older applications and applications provided by third parties that require SQL Server SQL Server Authentication.
Позволяет SQL Server SQL Server поддерживать среды с несколькими операционными системами, в которых пользователи не проходят проверку подлинности домена Windows. Allows SQL Server SQL Server to support environments with mixed operating systems, where all users are not authenticated by a Windows domain.
Позволяет пользователям устанавливать соединения из неизвестных или недоверенных доменов. Allows users to connect from unknown or untrusted domains. Например, в приложении, в котором клиенты подключаются с выделенными именами входа SQL Server SQL Server , чтобы получить состояние их заказов. For instance, an application where established customers connect with assigned SQL Server SQL Server logins to receive the status of their orders.
Позволяет SQL Server SQL Server поддерживать веб-приложения, в которых пользователи сами создают собственные удостоверения. Allows SQL Server SQL Server to support Web-based applications where users create their own identities.
Позволяет разработчикам программного обеспечения распространять свои приложения с помощью сложной иерархии разрешений, основанной на известных, заранее установленных именах входа SQL Server SQL Server . Allows software developers to distribute their applications by using a complex permission hierarchy based on known, preset SQL Server SQL Server logins.
Использование проверки подлинности SQL Server SQL Server не ограничивает разрешения локальных администраторов на компьютере, на котором установлен SQL Server SQL Server . Using SQL Server SQL Server Authentication does not limit the permissions of local administrators on the computer where SQL Server SQL Server is installed.