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

适用于: SQL Server

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

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

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

注意

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

为 Windows 身份验证配置登录名

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

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

  2. 另外,为了确保登录用户对端点具有访问权限,请使用 GRANT 语句为登录授予对端点的连接权限。 注意,如果用户是管理员,则无需授予对端点的连接权限。

    有关详细信息,请参阅 Grant a Permission to a Principal

示例

下面的 Transact-SQL 示例为属于 Adomain 域的 Otheruser 用户帐户创建了一个 Transact-SQL 登录名。 并授予了此用户对预先存在的 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)