Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn

Применимо к: даSQL Server (все поддерживаемые версии)

Защита транспорта подразумевает проверку подлинности и (необязательно) шифрование сообщений, которыми обмениваются базы данных. Для зеркального отображения базы данных и Группы доступности AlwaysOnпроверка подлинности и шифрование настраиваются в конечной точке зеркального отображения базы данных. Базовые сведения о конечных точках зеркального отображения базы данных см. в разделе Конечная точка зеркального отображения базы данных (SQL Server).

В этом разделе.

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

Проверка подлинности — это процесс проверки того, что пользователь является тем, за кого себя выдает. Подключения между конечными точками зеркального отображения базы данных требуют проверки подлинности. Запросы соединения зеркального или следящего сервера должны проходить проверку подлинности.

Тип проверки подлинности, применяемый экземпляром сервера при зеркальном отображении базы данных или Группы доступности AlwaysOn , является свойством конечной точки зеркального отображения базы данных. Для конечных точек зеркального отображения базы данных доступны два типа защиты транспорта: проверка подлинности Windows (интерфейс поставщика поддержки безопасности, SSPI) и проверка подлинности на основе сертификата.

Проверка подлинности Windows

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

  • Если экземпляры SQL Server выполняются как службы в одной и той же учетной записи домена, то дополнительная настройка не требуется.

  • Если экземпляры SQL Server выполняются как службы под разными учетными записями домена (одного и того же или доверенных доменов), вам нужно создать имя входа для каждой учетной записи в базе данных master на каждом экземпляре сервера, а затем предоставить этому имени входа разрешение CONNECT для конечной точки.

  • Если экземпляры SQL Server выполняются как учетные записи сетевой службы, вам нужно создать в базе данных master \ на каждом из остальных серверов имя входа для каждой учетной записи главного компьютера ( имя_домена имя _ компьютера$ ), а затем предоставить этому имени входа разрешение CONNECT для конечной точки. Это обусловлено тем, что экземпляр сервера, выполняемый под учетной записью Network Service, выполняет проверку подлинности с помощью учетной записи домена главного компьютера.

Примечание

Пример установки сеанса для зеркального отображения базы данных с помощью проверки подлинности Windows см. в разделе Пример. Настройка зеркального отображения базы данных с помощью проверки подлинности Windows (Transact-SQL)

Сертификаты

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

Метод шифрования определяется при создании сертификата. Дополнительные сведения см. в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL). Соблюдайте осторожность при управлении действующим сертификатом.

Чтобы установить идентичность при соединении, экземпляр сервера использует закрытый ключ собственного идентификатора. Экземпляр сервера, который принимает запрос на соединение, для проверки подлинности отправителя использует открытый ключ идентификатора отправителя. Рассмотрим два экземпляра сервера: сервер_A и сервер_В. Сервер_A перед отправкой запроса на подключение к серверу_В использует закрытый ключ для шифрования заголовка соединения. Сервер_В использует открытый ключ сертификата сервера_A для расшифровки заголовка соединения. Если дешифрованный заголовок верен, сервер_B знает, что он был зашифрован сервером_A, и соединение авторизуется. Если дешифрованный заголовок неверен, сервер_B знает, что запрос на соединение не является достоверным, и отказывает в подключении.

Шифрование данных

По умолчанию конечная точка зеркальной базы данных требует шифрования данных, которые отправляются по соединениям зеркальных баз данных. В этом случае конечная точка может подключиться только к конечной точке, которая также использует соединение. Для соединений зеркального отображения базы данных рекомендуется использовать шифрование, за исключением случаев, когда гарантируется безопасность сети. Тем не менее шифрование можно отключить или сделать так, чтобы оно поддерживалось, но не требовалось явно. Если шифрование отключено, данные не шифруются, а конечная точка не может подключаться к конечной точке, требующей шифрования. Если шифрование поддерживается, данные шифруются, только если противоположная конечная точка поддерживает или требует шифрования.

Примечание

Зеркальные конечные точки, созданные SQL Server Management Studio , или требуют шифрования, или создаются с отключенным шифрованием. Чтобы изменить параметры шифрования на SUPPORTED, используется инструкция ALTER ENDPOINT Transact-SQL . Дополнительные сведения см. в статье ALTER ENDPOINT (Transact-SQL).

При необходимости пользователь обладает возможностью управлять алгоритмом шифрования, который может быть использован конечной точкой, путем определения одного из следующих значений для параметра ALGORITHM в инструкции CREATE ENDPOINT или в инструкции ALTER ENDPOINT:

Значение параметра ALGORITHM Описание
RC4; Указывает на то, что конечная точка должна использовать алгоритм RC4. Это значение по умолчанию.

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

Если подсоединяемые конечные точки указывают оба алгоритма, но в разной последовательности, используется тот алгоритм, который указан принимающей стороной.

Примечание

Алгоритм RC4 поддерживается только в целях обратной совместимости. Когда база данных имеет уровень совместимости 90 или 100, новые материалы могут шифроваться только с помощью алгоритмов RC4 или RC4_128. (Не рекомендуется.) Используйте вместо этого более новые алгоритмы, например AES. В SQL Server 2012 (11.x) и более поздних версиях материалы, зашифрованные с помощью алгоритма RC4 или RC4_128, могут быть расшифрованы на любом уровне совместимости.

Алгоритм RC4 является относительно слабым, хотя работает значительно быстрее по сравнению с AES, в то время как AES является довольно надежным алгоритмом. Поэтому рекомендуется использовать алгоритм AES.

Дополнительные сведения о синтаксисе Transact-SQL для задания шифрования см. в разделе CREATE ENDPOINT (Transact-SQL).

Конфигурация защиты транспорта для конечной точки зеркального отображения базы данных

См. также:

Выбор алгоритма шифрования
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
Центр обеспечения безопасности для базы данных Azure SQL и SQL Server Database Engine
Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server)
Конечная точка зеркального отображения базы данных (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
Диагностика конфигурации зеркального отображения базы данных (SQL Server)
Поиск и устранение неисправностей конфигурации групп доступности AlwaysOn (SQL Server)