Создание конечной точки зеркального отображения базы данных с проверкой подлинности Windows (Transact-SQL)

Область применения: SQL Server (все поддерживаемые версии)

В этом разделе описывается создание конечной точки зеркального отображения базы данных, использующей проверку подлинности Windows в SQL Server при помощи Transact-SQL. Для поддержки зеркального отображения базы данных или групп доступности Always On каждому экземпляру SQL Server требуется конечная точка зеркального отображения базы данных. На экземпляре сервера может быть только одна конечная точка зеркального отображения базы данных, которой назначен только один порт. Конечная точка зеркального отображения базы данных может использовать любой доступный порт на локальной системе, на которой эта точка создана. Все сеансы зеркального отображения базы данных на экземпляре сервера прослушивают этот порт, и все входящие соединения для зеркального отображения базы данных используют этот порт.

Важно!

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

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

  • Перед началом работы:Безопасность

  • Создание конечной точки зеркального отображения базы данных с помощью следующих средств:Transact-SQL

Перед началом

Безопасность

Методы проверки подлинности и шифрования для каждого экземпляра сервера устанавливаются администратором системы.

Предупреждение

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

Разрешения

Требует разрешения sysadmin или членства в предопределенной роли сервера CREATE ENDPOINT. Дополнительные сведения см. в разделе GRANT, Предоставление разрешений на конечные точки (Transact-SQL).

Использование Transact-SQL

Создание конечной точки зеркального отображения базы данных с проверкой подлинности Windows

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

  2. На панели «Стандартная» нажмите Создать запрос.

  3. Определите, не существует ли уже конечная точка зеркального отображения, с помощью следующей инструкции:

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;   
    

    Важно!

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

  4. Чтобы создать конечную точку с проверкой подлинности Windows на языке Transact-SQL, выполните инструкцию CREATE ENDPOINT. Эта инструкция выглядит так:

    CREATE ENDPOINT *\<endpointName>*  
    
    STATE=STARTED  
    
    AS TCP ( LISTENER_PORT = *\<listenerPortList>* )  
    
    FOR DATABASE_MIRRORING  
    
    (  
    
    [ AUTHENTICATION = **WINDOWS** [ *\<authorizationMethod>* ]  
    
    ]  
    
    [ [**,**] ENCRYPTION = **REQUIRED**  
    
    [ ALGORITHM { *\<algorithm>* } ]  
    
    ]  
    
    [**,**] ROLE = *\<role>*  
    
    )  
    

    Где:

    • <endpointName> — это уникальное имя для конечной точки зеркального отображения базы данных экземпляра сервера.

    • STARTED указывает, что конечная точка должна запуститься и начать ожидать соединения. Обычно конечные точки зеркального отображения базы данных создаются в состоянии STARTED. Можно также начать сеанс в состоянии STOPPED (по умолчанию) или DISABLED.

    • <listenerPortList> — это номер одного порта (nnnn), по которому сервер должен прослушивать сообщения зеркального отображения базы данных. Разрешается только протокол TCP; использование другого протокола приведет к ошибке.

      Номер порта на одном компьютере может использоваться только один раз. Конечная точка зеркального отображения базы данных может использовать любой доступный порт на локальной системе, на которой эта точка создана. Чтобы определить, какие порты в данный момент используются в системе конечными точками протокола TCP, выполните следующую инструкцию Transact-SQL:

      SELECT name, port FROM sys.tcp_endpoints;  
      

      Важно!

      У каждого экземпляра сервера должен быть один и только один уникальный прослушиваемый порт.

    • Для проверки подлинности Windows параметр AUTHENTICATION является необязательным, если не требуется, чтобы в конечной точке использовались только NTLM или Kerberos для проверки подлинности соединений. <authorizationMethod> указывает метод, используемый для проверки подлинности соединений, как один из следующих: NTLM, KERBEROS или NEGOTIATE. Значение по умолчанию NEGOTIATE соответствует тому, что конечная точка будет использовать протокол согласования Windows для выбора NTLM либо Kerberos. Согласование разрешает соединения без проверки подлинности или с ней, в зависимости от уровня проверки подлинности противоположной конечной точки.

    • По умолчанию параметр ENCRYPTION имеет значение REQUIRED. Это означает, что все соединения с этой конечной точкой должны использовать шифрование. Однако можно отключить шифрование или сделать его необязательным. Существуют следующие варианты.

      Значение Определение
      DISABLED Указывает на то, что данные, передаваемые через соединение, не будут зашифрованы.
      SUPPORTED Указывает на то, что данные будут зашифрованы только в случае, если у противоположной конечной точки этот аргумент принял значение SUPPORTED или REQUIRED.
      REQUIRED Указывает на то, что данные, передаваемые через соединение, шифруются.

      Если конечная точка требует шифрования, у другой конечной точки значением параметра ENCRYPTION может быть SUPPORTED или REQUIRED.

    • <Алгоритм> предоставляет параметр определения стандартов шифрования для конечной точки. Значение <algorithm> может указывать один из следующих алгоритмов либо сочетание алгоритмов: RC4, AES, AES RC4 или RC4 AES.

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

      Предупреждение

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

    • <Роль> определяет роль или роли, которые может выполнять сервер. Указание параметра ROLE необходимо. Однако роль конечной точки является значимой только для зеркального отображения базы данных. Для групп доступности Always On роль конечной точки игнорируется.

      Чтобы сервер мог выполнять одну роль в одном сеансе зеркального отображения базы данных и другую — в другом, укажите ROLE=ALL. Чтобы ограничить роль сервера только участником или следящим, укажите ROLE = PARTNER или ROLE = WITNESS, соответственно.

      Примечание

      Дополнительные сведения о параметрах зеркального отображения баз данных для различных выпусков SQL Server см. в разделе Функции, поддерживаемые различными выпусками SQL Server 2016.

    Полное описание синтаксиса инструкции CREATE ENDPOINT см. в разделе CREATE ENDPOINT (Transact-SQL).

    Примечание

    Чтобы изменить существующую конечную точку, используйте ALTER ENDPOINT (Transact-SQL).

Пример. Создание конечных точек для поддержки функции зеркального отображения базы данных (Transact-SQL)

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

Роль экземпляра сервера Имя главного компьютера
Участник (изначально в роли основного сервера) SQLHOST01\.
Участник (изначально в роли зеркального сервера) SQLHOST02\.
Свидетель SQLHOST03\.

В этом примере все три конечные точки используют порт с номером 7022, хотя можно было бы использовать номер любого доступного порта. Параметр AUTHENTICATION необязателен, так как все конечные точки используют тип по умолчанию, проверку подлинности Windows. Параметр ENCRYPTION также необязателен, так как все конечные точки намереваются согласовывать метод проверки подлинности соединения, а это поведение по умолчанию — для проверки подлинности Windows. Также все конечные точки требуют шифрование, что также является поведением по умолчанию.

Каждый сервер ограничен ролью или участника, или следящего, и конечная точка каждого сервера явно задает эту роль (ROLE=PARTNER или ROLE=WITNESS).

Важно!

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

--Endpoint for initial principal server instance, which  
--is the only server instance running on SQLHOST01.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for initial mirror server instance, which  
--is the only server instance running on SQLHOST02.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for witness server instance, which  
--is the only server instance running on SQLHOST03.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=WITNESS);  
GO  

Связанные задачи

Настройка конечной точки зеркального отображения базы данных

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

См. также:

ALTER ENDPOINT (Transact-SQL)
Выбор алгоритма шифрования
CREATE ENDPOINT (Transact-SQL)
Указание сетевого адреса сервера (зеркальное отображение базы данных)
Пример. Настройка зеркального отображения базы данных с помощью проверки подлинности Windows (язык Transact-SQL)
Конечная точка зеркального отображения базы данных (SQL Server)