Как изменить режим проверки подлинности SQL сервера
Страница 1 из 1
[ 1 сообщение ]
Версия для печати
Пред. тема | След. тема
Автор
Сообщение
Support
Как изменить режим проверки подлинности SQL сервера (http://msdn.microsoft.com/library/ms188670.aspx)
У Microsoft SQL Server есть два режима проверки подлинности:
Windows Authentication mode – аутентификация только при помощи учетных записей Windows.
SQL Server and Windows Authentication mode – смешанный режим, аутентификация как при помощи Windows, так и при помощи SQL Server.
Существует несколько способов для изменения проверки подлинности SQL сервера.
Изменение при помощи SQL Server Management Studio
Запустить SQL Server Management Studio
В обозревателе объектов щелкнуть правой кнопкой мыши на сервер, и выбрать пункт “Properties”.
На странице “Security” в разделе “Server authentication” выберите новый режим проверки подлинности сервера, а затем нажмите кнопку “OK”
В обозревателе объектов щелкнуть правой кнопкой мыши на сервер, и выбрать пункт “Restart”.
Изменение при помощи реестра Если на компьютере не установлена SQL Server Management Studio, то изменить режим проверки подлинности SQL сервера можно при помощи реестра. Для этого нужно
Среди ключей реестра выбрать ключ LoginMode. Этот ключ может может быть равен либо “1”, либо “2”. При этом: 1 — Windows Authentication mode 2 — SQL Server and Windows Authentication mode
Теперь необходимо перезапустить SQL Server. Для этого нужно:
Запустить SQL Server Configuration Manager.
В списке служб щелкнуть правой кнопкой мыши на SQL Server Services и нажать Open.
Найти экземпляр SQL сервера, щелкнуть по нему правой кнопкой мыши и в выпадающем меню нажать “Restart”
Скрипты В архиве находится скрипт, который устанавливает режим аутентификации SQL сервера в смешанный режим (SQL Server and Windows Authentication mode) Database\ AuthenticationMode.ps1 Скрипт принимает на вход один параметр DBServerName в котором нужно указать имя SQL сервера.
Вложения:
Комментарий к файлу: Изменение режима проверки подлинности SQL сервера
Руководство. подключиться с использованием проверки подлинности SQL Server How to: Connect Using SQL Server Authentication
Скачать драйвер PHP Download PHP Driver
Драйверы Microsoft SQL Server для PHP Microsoft Drivers for PHP for SQL Server поддерживает проверку подлинности SQL Server при подключении к SQL Server. The Драйверы Microsoft SQL Server для PHP Microsoft Drivers for PHP for SQL Server supports SQL Server Authentication when you connect to SQL Server.
Проверку подлинности SQL Server следует использовать только в том случае, если невозможно реализовать проверку подлинности Windows. SQL Server Authentication should be used only when Windows Authentication is not possible. Сведения о подключении с использованием проверки подлинности Windows см. в руководстве Подключение с помощью проверки подлинности Windows. For information about connecting with Windows Authentication, see How to: Connect Using Windows Authentication.
При использовании проверки подлинности SQL Server для подключения к SQL Server необходимо учитывать следующие аспекты. The following points must be considered when you use SQL Server Authentication to connect to SQL Server:
На сервере должен быть включен смешанный режим проверки подлинности SQL Server. SQL Server Mixed Mode Authentication must be enabled on the server.
Идентификатор пользователя и пароль (атрибуты подключения UID и PWD в драйвере SQLSRV) должны быть установлены, когда предпринимается попытка соединения. The user ID and password (UID and PWD connection attributes in the SQLSRV driver) must be set when you try to establish a connection. Идентификатор пользователя и пароль необходимо сопоставить с допустимым пользователем и паролем SQL Server. The user ID and password must map to a valid SQL Server user and password.
Пароли, которые содержат закрывающую фигурную скобку (>), необходимо экранировать с помощью второй закрывающей фигурной скобки. Passwords that contain a closing curly brace (>) must be escaped with a second closing curly brace. Например, если пароль SQL Server имеет значение «па>роль», для атрибута соединения PWD следует задать значение «па>>роль». For example, if the SQL Server password is «pass>word», the value of the PWD connection attribute must be set to «pass>>word».
При использовании проверки подлинности SQL Server для подключения к SQL Server необходимо принять следующие меры предосторожности. The following precautions should be taken when you use SQL Server Authentication to connect to SQL Server:
Защитите (зашифруйте) учетные данные, передаваемые по сети с веб-сервера в базу данных. Protect (encrypt) the credentials passed over the network from the Web server to the database. Начиная с SQL Server 2005, учетные данные шифруются по умолчанию. Credentials are encrypted by default beginning in SQL Server 2005. Чтобы повысить уровень безопасности, присвойте атрибуту соединения Encrypt значение «on» для шифрования всех данных, отправляемых на сервер. For added security, set the Encrypt connection attribute to «on» in order to encrypt all data sent to the server.
Присвоение атрибуту соединения Encrypt значения «on» может привести к снижению производительности, поскольку для шифрования данных может требоваться большой объем вычислений. Setting the Encrypt connection attribute to «on» can cause slower performance because data encryption can be computationally intensive.
Не указывайте значения для атрибутов соединения UID и PWD в виде открытого текста в скриптах PHP. Do not include values for the connection attributes UID and PWD in plain text in PHP scripts. Эти значения должны храниться в каталоге для конкретного приложения с соответствующими ограниченными разрешениями. These values should be stored in an application-specific directory with the appropriate restricted permissions.
Избегайте использования учетной записи sa . Avoid use of the sa account. Сопоставьте приложение с пользователем базы данных, обладающим необходимыми привилегиями, и используйте надежный пароль. Map the application to a database user who has the desired privileges and use a strong password.
Атрибуты соединения, кроме идентификатора пользователя и пароля, можно задать при установке соединения. Connection attributes besides user ID and password can be set when you establish a connection. Полный список поддерживаемых атрибутов соединения см. в статье Connection Options. For a complete list of supported connection attributes, see Connection Options.
Пример Example
Следующий пример использует драйвер SQLSRV с проверкой подлинности SQL Server для подключения к локальному экземпляру SQL Server. The following example uses the SQLSRV driver with SQL Server Authentication to connect to a local instance of SQL Server. Значения для необходимых атрибутов подключения UID и PWD берутся из текстовых файлов для конкретного приложения (uid.txt и pwd.txt), находящихся в каталоге C:\AppData. The values for the required UID and PWD connection attributes are taken from application-specific text files, uid.txt and pwd.txt, in the C:\AppData directory. После установки соединения на сервер отправляется запрос для проверки имени входа пользователя. After the connection has been established, the server is queried to verify the user login.
В примере предполагается, что SQL Server и базы данных AdventureWorks установлены на локальном компьютере. The example assumes that SQL Server and the AdventureWorks database are installed on the local computer. При выполнении примера в браузере все выходные данные выводятся в браузер. All output is written to the browser when the example is run from the browser.
Пример Example
Этот пример использует драйвер PDO_SQLSRV для демонстрации подключения с помощью проверки подлинности SQL Server. This sample uses the PDO_SQLSRV driver to demonstrate how to connect with SQL Server Authentication.
Использование встроенной проверки подлинности Using Integrated Authentication
Скачать драйвер ODBC Download ODBC Driver
Microsoft Microsoft ODBC Driver for SQL Server SQL Server в Linux и macOS поддерживает соединения, использующие встроенную проверку подлинности Kerberos. The Microsoft Microsoft ODBC Driver for SQL Server SQL Server on Linux and macOS supports connections that use Kerberos integrated authentication. Он поддерживает центр распространения ключей (KDC) Kerberos MIT и работает с общим API служб безопасности (GSSAPI) и библиотеками Kerberos версии 5. It supports the MIT Kerberos Key Distribution Center (KDC), and works with Generic Security Services Application Program Interface (GSSAPI) and Kerberos v5 libraries.
Начиная с версии 17.6, драйвер также поддерживает встроенную проверку подлинности с помощью Azure Active Directory с использованием федеративной учетной записи, независимо от ограничений системной библиотеки. As of version 17.6, the driver also supports integrated authentication with Azure Active Directory using a federated account, system library limitations notwithstanding. Дополнительные сведения см. в статье Использование Azure Active Directory. See Using Azure Active Directory for more information.
Использование встроенной проверки подлинности для подключения к SQL Server SQL Server из приложения ODBC Using Integrated Authentication to Connect to SQL Server SQL Server from an ODBC Application
Вы можете включить встроенную проверку подлинности Kerberos, указав Trusted_Connection=yes в строке подключения для SQLDriverConnect или SQLConnect. You can enable Kerberos integrated authentication by specifying Trusted_Connection=yes in the connection string of SQLDriverConnect or SQLConnect. Пример: For example:
При подключении с использованием имени DSN можно также добавить Trusted_Connection=yes в запись имени DSN в файле odbc.ini . When connecting with a DSN, you can also add Trusted_Connection=yes to the DSN entry in odbc.ini .
Задать встроенную проверку подлинности можно также с помощью параметра -E команды sqlcmd и параметра -T команды bcp . Дополнительные сведения см. в статьях Соединение с помощью sqlcmd и Соединение с помощью bcp. The -E option of sqlcmd and the -T option of bcp can also be used to specify integrated authentication; see Connecting with sqlcmd and Connecting with bcp for more information.
Убедитесь в том, что субъект клиента, который будет соединяться с SQL Server SQL Server , уже прошел проверку подлинности с помощью Kerberos KDC. Ensure that the client principal which is going to connect to SQL Server SQL Server is already authenticated with the Kerberos KDC.
ServerSPN и FailoverPartnerSPN не поддерживаются. ServerSPN and FailoverPartnerSPN are not supported.
Развертывание приложения драйвера ODBC для Linux или macOS, предназначенного для запуска в качестве службы Deploying a Linux or macOS ODBC Driver Application Designed to Run as a Service
Системный администратор может развернуть приложение для запуска в качестве службы, которое использует проверку подлинности Kerberos для подключения к SQL Server SQL Server . A system administrator can deploy an application to run as a service that uses Kerberos Authentication to connect to SQL Server SQL Server .
Сначала необходимо настроить Kerberos в клиенте, а затем убедиться в том, что приложение может использовать учетные данные Kerberos субъекта по умолчанию. You first need to configure Kerberos on the client and then ensure that the application can use the Kerberos credential of the default principal.
Убедитесь в том, что вы используете kinit или PAM (подключаемый модуль проверки подлинности) для получения и кэширования TGT для субъекта, используемого соединением, одним из следующих способов: Ensure that you use kinit or PAM (Pluggable Authentication Module) to obtain and cache the TGT for the principal that the connection uses, via one of the following methods:
Запустите kinit , передав имя и пароль субъекта. Run kinit , passing in a principal name and password.
Запустите kinit , передав имя субъекта и расположение файла keytab, который содержит ключ субъекта, созданный ktutil . Run kinit , passing in a principal name and a location of a keytab file that contains the principal’s key created by ktutil .
Убедитесь в том, что вход в систему был выполнен с помощью PAM Kerberos (подключаемый модуль проверки подлинности). Ensure that the login to the system was done using the Kerberos PAM (Pluggable Authentication Module).
Когда приложение запускается в виде службы, обновляйте учетные данные Kerberos, чтобы обеспечить постоянную доступность службы, так как учетные данные намеренно имеют срок действия. When an application runs as a service, because Kerberos credentials expire by design, renew the credentials to ensure continued service availability. Драйвер ODBC не обновляет учетные данные. Убедитесь в том, что имеется задание cron или скрипт, которые периодически выполняют обновление учетных данных до истечения срока их действия. The ODBC driver does not renew credentials itself; ensure that there is a cron job or script that periodically runs to renew the credentials before their expiration. Чтобы избежать запроса пароля для каждого обновления, можно использовать файл keytab. To avoid requiring the password for each renewal, you can use a keytab file.
СтатьяКонфигурация и использование Kerberos содержит сведения о способах применения Kerberos для служб в Linux. Kerberos Configuration and Use provides details on ways to Kerberize services on Linux.
Отслеживание доступа к базе данных Tracking Access to a Database
Администратор базы данных может создать журнал аудита доступа к базе данных при использовании системных учетных записей для доступа к SQL Server SQL Server с помощью встроенной проверки подлинности. A database administrator can create an audit trail of access to a database when using system accounts to access SQL Server SQL Server using Integrated Authentication.
Для входа в SQL Server SQL Server используется системная учетная запись, а в Linux нет никаких функций для олицетворения контекста безопасности. Logging in to SQL Server SQL Server uses the system account and there is no functionality on Linux to impersonate security context. Таким образом, для определения пользователя требуется нечто большее. Therefore, more is required to determine the user.
Для аудита действий в SQL Server SQL Server от имени пользователей, отличных от системной учетной записи, приложение должно использовать EXECUTE AS Transact-SQL Transact-SQL . To audit activities in SQL Server SQL Server on behalf of users other than the system account, the application must use Transact-SQL Transact-SQL EXECUTE AS.
Для повышения производительности приложение может использовать организацию пулов соединений со встроенной проверкой подлинности и аудитом. To improve application performance, an application can use connection pooling with Integrated Authentication and auditing. Однако совмещение организации пулов соединений, встроенной проверки подлинности и аудита создает угрозу безопасности, так как диспетчер драйверов unixODBC позволяет различным пользователям повторно использовать подключения из пула. However, combining connection pooling, Integrated Authentication, and auditing creates a security risk because the unixODBC driver manager permits different users to reuse pooled connections. Дополнительные сведения см. в статье Организация пулов соединений ODBC. For more information, see ODBC Connection Pooling.
Перед повторным использованием приложение должно сбросить соединения в пуле, выполнив sp_reset_connection . Before reuse, an application must reset pooled connections by executing sp_reset_connection .
Использование Active Directory для управления удостоверениями пользователей Using Active Directory to Manage User Identities
Администратору системы приложений не требуется управлять отдельными наборами учетных данных входа для SQL Server SQL Server . An application system administrator does not have to manage separate sets of login credentials for SQL Server SQL Server . Можно настроить Active Directory в качестве центра распространения ключей (KDC) для встроенной проверки подлинности. It is possible to configure Active Directory as a key distribution center (KDC) for Integrated Authentication. Дополнительные сведения см. в статье Microsoft Kerberos. See Microsoft Kerberos for more information.
Использование связанного сервера и распределенных запросов Using Linked Server and Distributed Queries
Разработчики могут развернуть приложение, которое использует связанный сервер или распределенные запросы, без администратора базы данных, обслуживающего отдельные наборы учетных данных SQL. Developers can deploy an application that uses a linked server or distributed queries without a database administrator who maintains separate sets of SQL credentials. В этом случае разработчику необходимо настроить в приложении использование встроенной проверки подлинности: In this situation, a developer must configure an application to use integrated authentication:
Пользователь входит на клиентский компьютер и выполняет проверку подлинности для сервера приложений. User logs in to a client machine and authenticates to the application server.
Сервер приложений осуществляет проверку подлинности в качестве другой базы данных и подключается к SQL Server SQL Server . The application server authenticates as a different database and connects to SQL Server SQL Server .
SQL Server SQL Server проходит проверку подлинности как пользователь базы данных в другой базе данных ( SQL Server SQL Server . authenticates as a database user to another database ( SQL Server SQL Server .
После настройки встроенной проверки подлинности учетные данные передаются связанному серверу. After integrated authentication is configured, credentials will be passed to the linked server.
Встроенная проверка подлинности и sqlcmd Integrated Authentication and sqlcmd
Чтобы получить доступ к SQL Server SQL Server с помощью встроенной проверки подлинности, используйте параметр -E программы sqlcmd . To access SQL Server SQL Server using integrated authentication, use the -E option of sqlcmd . Убедитесь в том, что учетная запись, используемая для запуска sqlcmd , сопоставлена с субъектом клиента Kerberos по умолчанию. Ensure that the account which runs sqlcmd is associated with the default Kerberos client principal.
Встроенная проверка подлинности и bcp Integrated Authentication and bcp
Чтобы получить доступ к SQL Server SQL Server с помощью встроенной проверки подлинности, используйте параметр -T программы bcp . To access SQL Server SQL Server using integrated authentication, use the -T option of bcp . Убедитесь в том, что учетная запись, используемая для запуска bcp , сопоставлена с субъектом клиента Kerberos по умолчанию. Ensure that the account which runs bcp is associated with the default Kerberos client principal.
Использование параметра -T с параметром -U или -P является ошибкой. It is an error to use -T with the -U or -P option.
Поддерживаемый синтаксис для имени субъекта-службы, зарегистрированного SQL Server SQL Server Supported Syntax for an SPN Registered by SQL Server SQL Server
В именах субъектов-служб в атрибутах или строке подключения применяется следующий синтаксис: The syntax that SPNs use in the connection string or connection attributes is as follows:
Синтаксис Syntax
Описание Description
MSSQLSvc/fqdn:port MSSQLSvc/fqdn:port
Сформированное поставщиком имя участника-службы для экземпляра по умолчанию, когда используется протокол TCP. The provider-generated, default SPN when TCP is used. port — номер TCP-порта. port is a TCP port number. fqdn — полное доменное имя. fqdn is a fully qualified domain name.
Проверка подлинности компьютера Linux или macOS с помощью Active Directory Authenticating a Linux or macOS Computer with Active Directory
Чтобы настроить Kerberos, введите данные в файле krb5.conf . To configure Kerberos, enter data into the krb5.conf file. krb5.conf находится в папке /etc/ , но можно сослаться на другой файл, используя такой синтаксис: export KRB5_CONFIG=/home/dbapp/etc/krb5.conf . krb5.conf is in /etc/ but you can refer to another file using the syntax e.g. export KRB5_CONFIG=/home/dbapp/etc/krb5.conf . Ниже представлен пример файла krb5.conf . The following is an example krb5.conf file:
Если на компьютере Linux или macOS настроено использование протокола DHCP, причем DHCP-сервер Windows предоставляет DNS-серверы для использования, можно использовать dns_lookup_kdc=true. If your Linux or macOS computer is configured to use the Dynamic Host Configuration Protocol (DHCP) with a Windows DHCP server providing the DNS servers to use, you can use dns_lookup_kdc=true. Теперь можно использовать Kerberos для входа в домен с помощью команды kinit alias@YYYY.CORP.CONTOSO.COM . Now, you can use Kerberos to sign in to your domain by issuing the command kinit alias@YYYY.CORP.CONTOSO.COM . В параметрах, передаваемых в kinit , учитывается регистр, а компьютер SQL Server SQL Server , настроенный для нахождения в домене, должен использовать этот псевдоним пользователя alias@YYYY.CORP.CONTOSO.COM для входа в систему. Parameters passed to kinit are case-sensitive and the SQL Server SQL Server computer configured to be in the domain must have that user alias@YYYY.CORP.CONTOSO.COM added for login. Теперь вы можете использовать доверительные соединения (Trusted_Connection=YES в строке подключения, bcp -T или sqlcmd -E). Now, you can use trusted connections (Trusted_Connection=YES in a connection string, bcp -T, or sqlcmd -E).
Время на компьютере Linux или macOS и время в центре распространения ключей Kerberos (KDC) не должны слишком сильно различаться. The time on the Linux or macOS computer and the time on the Kerberos Key Distribution Center (KDC) must be close. Убедитесь в том, что системное время задано правильно, например с помощью протокола NTP. Ensure that your system time is set correctly, e.g. by using the Network Time Protocol (NTP).
При сбое проверки подлинности Kerberos драйвер ODBC в Linux или macOS не использует проверку подлинности NTLM. If Kerberos authentication fails, the ODBC driver on Linux or macOS does not use NTLM authentication.
Дополнительные сведения о проверке подлинности компьютера Linux или macOS с помощью Active Directory см. в статье Проверка подлинности клиентов Linux с помощью Active Directory. For more information about authenticating Linux or macOS computers with Active Directory, see Authenticate Linux Clients with Active Directory. Дополнительные сведения о настройке Kerberos см. в документации MIT Kerberos. For more information about configuring Kerberos, see the MIT Kerberos Documentation.