数据库镜像 - 允许网络访问 - Windows 身份验证

适用于:SQL Server

将 Windows 身份验证用于连接两个 SQL Server 实例的数据库镜像端点在以下条件下要求手动配置登录帐户:

  • 如果 SQL Server 的实例基于不同的域帐户(在相同的域或受信任的域中)作为服务运行,则必须在每个远程服务器实例上的 master 中创建各帐户的登录名,并且必须授予该登录帐户对端点的 CONNECT 权限。

  • 如果 SQL Server 实例以 Network Service 帐户身份运行,则必须在每个远程服务器实例的 master 中创建每台主机计算机帐户的登录名(DomainName**\**ComputerName$),并且必须向该登录名授予对端点的 CONNECT 权限。 其原因在于,基于网络服务帐户运行的服务器实例使用主机的域帐户进行身份验证。

注意

确保每个服务器实例都有一个端点。 有关详细信息,请参阅为 Windows 身份验证创建数据库镜像终结点 (Transact-SQL)

为 Windows 身份验证配置登录名

  1. 对于每个 SQL Server实例的用户帐户,在其他 SQL Server实例上创建一个登录名。 使用带有 FROM WINDOWS 子句的 CREATE LOGIN 语句。

    有关详细信息,请参阅 创建登录名

  2. 此外,为确保该登录名能够访问终结点,请使用 GRANT 语句向该登录名授予对该终结点的连接权限。 注意,如果用户是管理员,则无需授予对端点的连接权限。

    有关详细信息,请参阅向主体授予权限

示例

以下 Transact-SQL 示例为属于名为 Adomain 的域的名为 Otheruser 的用户账户创建了 SQL Server 登录名。 该示例随后向该用户授予对名为 Mirroring_Endpoint 的现有数据库镜像端点的连接权限。

USE master;  
GO  
CREATE LOGIN [Adomain\Otheruser] FROM WINDOWS;  
GO  
GRANT CONNECT on ENDPOINT::Mirroring_Endpoint TO [Adomain\Otheruser];  
GO  

另请参阅

AlwaysOn 可用性组概述 (SQL Server)
数据库镜像 (SQL Server)
数据库镜像和 Always On 可用性组的传输安全 (SQL Server)
数据库镜像端点 (SQL Server)