8

我有兩個開發團隊,來自不同的團隊。我們如何別名連接字符串.config中使用的Sql Server實例名稱?

  • A組針對本地開發默認 Sql Server 2008 R2實例;
  • B組針對本地開發,名爲 Sql Server 2008 R2實例。

有沒有辦法設置一個別名,以便兩個組都使用相同的名稱進行編碼?就目前而言,我們有一場連接字符串戰爭,因爲B組的變化(本地)爲./DEV,而A組又將它改回來了?

回答

8

在SQL Server配置管理器中,在SQL服務器本機客戶端配置部分下有一個名爲「別名」的小節,您可以在此處添加一個別名,指向您的命名實例。您只需使用別名,就好像它是具有別名名稱的服務器上的默認實例一樣。我們使用這個確切的模型,並且只有一個指向標準別名的連接字符串。每個開發人員都有相同的別名,指向他們自己的實例。

2

就我個人而言,我會讓他們都使用同一個盒子。

也就是說,您可以使用SQL Server Client工具設置local aliases per developer's box

任何IP地址或服務器名稱石油基(如主機文件或DNS)將失敗,因爲實例名稱(和端口使用)是不同的

0

別名到本地SQLEXPRESS實例

爲了擴大Ben的回答,我有具體的要求,從別名連接字符串指向一個特定的服務器實例,而是重新路由這對我們的本地開發的SQL Express實例,即別名:

SomeServer\SomeInstance 

.\SQLExpress 

這證明有點棘手,直到我找到link here。我的SQL Express實例是在標準端口1433上運行(即適應套件)

啓用TCP/IP爲SQLEXPRESS

由於走樣通過TCP/IP端口,TCP/IP protocol must be enabled完成。 (如果您在本地工作,則不需要打開SqlExpress進行遠程訪問)。

使用在Sql Server -> Configuration Tools -> Sql Server Configuration Manager

Enabling TCP/IP

與此同時,該Listen All屬性設置爲Yes

啓用本地主機IP的

確保同時支持IPv4(127.0.0.1)和IPv6(::1)localhosts是有效且被啓用。

在每個IP上,將動態端口置於零(顧名思義,端口將動態分配)。然後IPAll動態和TCP端口被全局使用。

Activating local host

你需要重啓的的MSSQLServer/SQLEXPRESS的服務,使更改生效。

創建別名(32位和64位)

根據SQL本地客戶端XX配置,這需要簡單地將別名「從」 Server\Instance作爲別名和實際的服務器+實例作爲服務器(即我本地的SqlExpress實例)。我能夠通過端口1433或IpAll上的動態端口(9876)進行連接,但沒有理由使用後者。必須爲32位和64位客戶端配置完成別名。

Adding Sql Alias

您現在應該可以使用通過SSMS的別名SomeServer\SomeInstance連接。

其他注意事項

  • 因爲我是混疊本地實例,我沒有從主機SomeServer添加一個別名,一個DNS或LocalHosts。這可能是必需的,但是如果你是遠程服務器別名(加上我猜其他一些安全問題)
  • 我並不需要運行Sql Browser服務。

因此,似乎Sql客戶端配置在任何網絡或安全步驟之前負責替換。

相關問題