这几乎全部在标题中。我希望答案是否定的,但想询问以确保。基本上,单个 SQL Server 实例可以被多个名称引用。我知道您可以设置 DNS 以将多个名称解析为同一个 IP/服务器,但这会如何影响连接到 SQL Server?
SERVER/INSTANCE 的 SERVER 部分可以是解析为正确地址的任何名称,可以是额外的 A 记录或 CNAME 或来自 HOSTS 文件的名称。
这里唯一需要注意的是,假名可能会破坏 Kerberos 身份验证。带有 Kerberos 的 SQL 是一个有趣的野兽,SQL 客户端对地址进行反向 DNS 查找,然后使用它获得的名称来构建 SPN,因此只要反向查找获得服务器的原始主机名,它就应该可以工作。此外,SQL 将回退到 NTLM,因此如果您出于某种原因需要 Kerberos,这只会导致问题,例如您正在使用委派。
但是,您不能让 SQL 响应多个 INSTANCE 名称。但是,您可以在 CLIENT 配置中定义别名。
当您连接到 SQL Server 时,您指定的实例名称将发送到服务器上的 SQL Browser 服务,浏览器服务使用请求实例正在侦听的 TCP 端口进行响应。可以在连接字符串或别名中指定此端口号。我刚刚创建了一个名为 NEW 的别名,它指向 mysqlserver 端口 1966,它有一个命名实例监听它。然后,我可以通过简单地指定服务器名称 NEW 来连接到命名实例。
这种方法有两个缺点。首先是每个客户端都需要配置,不知道有没有什么方法可以推送那个配置。第二个是 SQL 实例通常使用动态端口。如果要定义别名,则需要更改服务器,使其侦听固定端口号,然后客户端可以配置为连接到该端口号。
归档时间: |
|
查看次数: |
6503 次 |
最近记录: |