Wie aliasieren wir einen Sql-Server-Instanznamen, der in einer Verbindungszeichenfolge .config verwendet wird?

8

Ich habe zwei Entwicklungsteams, die aus verschiedenen Gruppen kommen.

  • Gruppe A entwickelt sich gegen eine lokale Standard -Instanz von Sql Server 2008 R2;
  • Gruppe B entwickelt sich gegen eine lokale Instanz von Sql Server 2008 R2.

Gibt es eine Möglichkeit, einen Alias ​​so einzurichten, dass beide Gruppen denselben Namen haben? Wie es gerade steht, haben wir einen Krieg der Verbindungszeichenfolgen als Gruppe B ändert sich (lokal) zu ./DEV und Gruppe A ändert es wieder zurück?

    
Ralph Shillington 29.06.2010, 11:57
quelle

3 Antworten

8

Im SQL Server-Konfigurationsmanager gibt es unter dem nativen Clientkonfigurationsabschnitt von SQL Server einen Unterabschnitt namens "Aliase", in den Sie einen Alias ​​einfügen können, der auf Ihre benannte Instanz zeigt. Sie verwenden den Alias ​​einfach so, als ob es sich um die Standardinstanz auf einem Server mit dem Aliasnamen handelt. Wir verwenden dieses genaue Modell und haben nur eine Verbindungszeichenfolge, die auf einen Standardalias verweist. Jeder Entwickler hat denselben Aliasnamen, der auf seine eigene Instanz verweist.

    
Ben Robinson 29.06.2010, 12:03
quelle
2

Ich persönlich würde alle die gleiche Box benutzen.

Das heißt, Sie können lokale Aliase pro Entwicklerbox mithilfe von SQL Server-Clienttools festlegen.

Alles, was auf einer IP-Adresse oder einem Servernamen basiert (z. B. Host-Datei oder DNS), schlägt fehl, weil die Instanznamen (und die verwendeten Ports) unterschiedlich sind

    
gbn 29.06.2010 12:05
quelle
0

Aliasing für eine lokale SqlExpress-Instanz

Um die Antwort von Ben zu erweitern, hatte ich die spezielle Anforderung, eine Verbindungszeichenfolge auf eine bestimmte Serverinstanz zu aliasieren und diese stattdessen an unsere lokalen Sql Express-Instanzen des Entwicklers umzuleiten, d. h. an Alias ​​von:

%Vor%

bis

%Vor%

Das hat sich als etwas schwierig erwiesen, bis ich das gefunden habe Link hier . Meine Sql Express-Instanz wurde auf dem Standardport 1433 ausgeführt (d. H. An Suite angepasst)

TCP / IP für SqlExpress aktivieren

Da das Aliasing über TCP / IP-Ports erfolgt, muss das TCP / IP-Protokoll aktiviert sein . (Das Öffnen von SqlExpress für den Remotezugriff ist nicht erforderlich, wenn Sie lokal arbeiten).

Verwendung von Sql Server -> Configuration Tools -> Sql Server Configuration Manager :

Stellen Sie gleichzeitig die Eigenschaft Listen All auf Yes .

ein

LocalHost-IPs aktivieren

Stellen Sie sicher, dass sowohl IPv4 ( 127.0.0.1 ) als auch IPv6 ( ::1 ) localhosts aktiv und aktiviert sind.

Lassen Sie den dynamischen Port bei jedem IP auf Null (wie der Name schon sagt, wird der Port dynamisch zugewiesen). Die IPAll Dynamic und TCP Ports werden dann global verwendet.

Sie müssen den MSSQLServer / SqlExpress-Dienst neu starten, um die Änderung zu bewirken.

Erstellen von Aliasen (32 und 64 Bit)

Dies erfordert unter Sql Native Client xx-Konfigurationen das einfache Hinzufügen des Alias ​​"Von" Server\Instance als Alias-Name und der tatsächlichen Server + -Instanz als < em> Server (dh meine lokale SqlExpress-Instanz). Ich konnte mich sowohl über den Port 1433 als auch über den dynamischen Port von IpAll (9876) verbinden, obwohl ich keinen Grund sah, letzteres zu verwenden. Die Aliase müssen sowohl für 32-Bit- als auch für 64-Bit-Client-Konfigurationen ausgeführt werden.

Sie sollten nun in der Lage sein, eine Verbindung mit dem Alias% code% über SSMS herzustellen.

Weitere Hinweise

  • Da ich zu einer lokalen Instanz einen Alias ​​hatte, brauchte ich keinen Alias ​​für den from-Host, SomeServer\SomeInstance zu einem DNS oder LocalHosts hinzuzufügen. Dies wird jedoch wahrscheinlich erforderlich sein, wenn Sie auf einen Remote-Server Aliasing sind (plus einige andere Sicherheit Kopfschmerzen)
  • Ich brauchte den Sql Browser Service nicht.

Es scheint also, dass die Sql-Client-Konfiguration die Ersetzung vor allen Netzwerk- oder Sicherheitsschritten übernimmt.

    
StuartLC 30.07.2015 06:07
quelle