连接字符串的 CNAME 别名是个好主意吗?

Swi*_*der 6 sql-server network dns connections

为了非常灵活并更轻松地将数据库移动到不同的服务器,我们提出了为每个数据库使用别名的想法。因此,通过简单地更改 DNS 条目,我们可以将所有查询路由到不同的数据库服务器,而无需更改连接字符串或重新部署相应的客户端应用程序。

澄清:

每个数据库我们都会有一个别名。因此,如果将数据库移动到不同的服务器,只需更改其 DNS 别名。

例如:

  • db1-alias.mydomain.com 指向某个随机服务器上的 db1。
  • db2-alias.mydomain.com 指向在其他一些随机服务器上执行 db2。

因此,假设 db1 已从 server1 移至 server2,则无需更改连接字符串。只需要更改 DNS 别名条目,转发到 server2 而不是 server1。

这有什么已知的缺点吗?

Ton*_*kle 6

一个小缺点是,如果您使用加密连接,则需要向绑定到 SQL Server 的证书添加主题备用名称 (SAN)。如果您有一个托管许多较小应用程序的“共享”服务器,并且您想为每个应用程序设置一个别名,这可能会很痛苦。

如果为每个应用程序使用单独的别名,则每次向服务器添加新应用程序时都需要生成并安装新证书。如果您想确保证书中没有未使用/无效的 SAN,同样可能适用,因为每次删除应用程序时都需要一个新证书。