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

Защита транспорта в SQL Server 2005 в более поздних версиях подразумевает проверку подлинности и (не обязательно) шифрование сообщений, которыми обмениваются базы данных.

Для зеркального отображения базы данных проверка подлинности и шифрование настраиваются в конечной точке. Базовые сведения о конечных точках зеркального отображения базы данных см. в разделе Конечная точка зеркального отображения базы данных.

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

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

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

Проверка подлинности Windows поддерживает два протокола аутентификации: диспетчер NT LAN (NTLM) и Kerberos. Конечную точку зеркальной базы данных можно настроить для использования только одного протокола или для согласования обоих протоколов. По умолчанию выбрано согласование. Значение по умолчанию NEGOTIATE соответствует тому, что конечная точка будет использовать протокол переговоров Windows для выбора NTLM или Kerberos. Если в конечной точке задан конкретный метод авторизации (NTLM или Kerberos), она может использовать только этот метод. Если противоположная конечная точка настроена для использования только другого метода, конечные точки не могут подключиться друг к другу. Дополнительные сведения об этих методах см. в разделе Типы проверки подлинности конечной точки.

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

Сведения об этой конечной точке см. в разделе Конечная точка зеркального отображения базы данных.

Соединение зеркального отображения базы данных использует или проверку подлинности Windows (интерфейс поставщика службы безопасности, SSPI), или проверку подлинности на основе сертификатов.

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

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

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

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

Сертификаты

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

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

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

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

Устанавливайте сертификаты, полученные только из доверенных источников.

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

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

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

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

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

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

Значение параметра ALGORITHM

Описание

RC4

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

AES

Указывает на то, что конечная точка должна использовать алгоритм AES.

AES RC4

Указывает на то, что две конечных точки будут согласовывать алгоритм шифрования, оставляя приоритет за алгоритмом AES.

RC4 AES

Указывает на то, что две конечных точки будут согласовывать алгоритм шифрования, оставляя приоритет за алгоритмом RC4.

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

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

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

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