Freigeben über


Herstellen einer Verbindung zu einer Instanz von SQL Server

Der erste Programmierschritt in einer SQL Server Management Objects (SMO)-Anwendung besteht darin, eine Instanz des Server Objekts zu erstellen und die Verbindung mit einer Instanz von Microsoft SQL Server herzustellen.

Sie können eine Instanz des Server Objekts erstellen und eine Verbindung mit der Instanz von SQL Server auf drei Arten herstellen. Im ersten Wird eine ServerConnection Objektvariable verwendet, um die Verbindungsinformationen bereitzustellen. Die zweite besteht darin, die Verbindungsinformationen bereitzustellen, indem die Server Objekteigenschaften explizit festgelegt werden. Der dritte besteht darin, den Namen der SQL Server-Instanz im Server Objektkonstruktor zu übergeben.

Verwenden eines ServerConnection-Objekts

Der Vorteil der Verwendung der ServerConnection Objektvariable besteht darin, dass die Verbindungsinformationen wiederverwendet werden können. Deklarieren Sie eine Server Objektvariable. Deklarieren Sie dann ein ServerConnection Objekt, und legen Sie Eigenschaften mit Verbindungsinformationen wie dem Namen der Instanz von SQL Server und dem Authentifizierungsmodus fest. Übergeben Sie dann die ServerConnection Objektvariable als Parameter an den Server Objektkonstruktor. Es wird nicht empfohlen, Verbindungen zwischen verschiedenen Serverobjekten gleichzeitig zu teilen. Verwenden Sie die Copy Methode, um eine Kopie der vorhandenen Verbindungseinstellungen abzurufen.

Explizites Festlegen von Serverobjekteigenschaften

Alternativ können Sie die Server Objektvariable deklarieren und den Standardkonstruktor aufrufen. Server Das Objekt versucht, eine Verbindung mit der Standardinstanz von SQL Server mit allen Standardverbindungseinstellungen herzustellen.

Bereitstellen des SQL Server-Instanznamens im Server-Objektkonstruktor

Deklarieren Sie die Server Objektvariable, und übergeben Sie den SQL Server-Instanznamen als Zeichenfolgenparameter im Konstruktor. Das Server Objekt stellt eine Verbindung mit der Instanz von SQL Server mit den Standardverbindungseinstellungen her.

Verbindungspooling

Normalerweise ist es nicht erforderlich, die Connect Methode des ServerConnection Objekts aufzurufen. SMO stellt bei Bedarf automatisch eine Verbindung her und gibt die Verbindung mit dem Verbindungspool frei, nachdem sie die Ausführung von Vorgängen abgeschlossen hat. Wenn die Connect Methode aufgerufen wird, wird die Verbindung nicht an den Pool freigegeben. Ein expliziter Aufruf der Disconnect Methode ist erforderlich, um die Verbindung mit dem Pool freizugeben. Darüber hinaus können Sie eine verbindung ohne Pool anfordern, indem Sie die NonPooledConnection Eigenschaft des ServerConnection Objekts festlegen.

Multithreadanwendungen

Für Multithreadanwendungen sollte in jedem Thread ein separates ServerConnection-Objekt verwendet werden.

Herstellen einer Verbindung mit einer Instanz von SQL Server für RMO

Replikationsverwaltungsobjekte (Replication Management Objects, RMO) verwenden eine etwas andere Methode als SMO, um eine Verbindung mit einem Replikationsserver herzustellen.

RMO-Programmierobjekte erfordern, dass eine Verbindung mit einer Sql Server-Instanz hergestellt wird, indem das ServerConnection vom Microsoft.SqlServer.Management.Common Namespace implementierte Objekt verwendet wird. Diese Verbindung mit dem Server wird unabhängig von einem RMO-Programmierobjekt hergestellt. Sie wird dann entweder während der Instanzerstellung oder durch Zuweisung zur ConnectionContext Eigenschaft des Objekts an das RMO-Objekt übergeben. Dadurch können ein RMO-Programmierobjekt und die Instanzen des Verbindungsobjekts getrennt erstellt und verwaltet werden. Zudem kann ein einzelnes Verbindungsobjekt mit mehreren RMO-Programmierobjekten verwendet werden. Für Verbindungen mit einem Replikationsserver gelten die folgenden Regeln:

  • Alle Eigenschaften für die Verbindung werden für ein angegebenes ServerConnection Objekt definiert.

  • Jede Verbindung mit einer Instanz von SQL Server muss über ein eigenes ServerConnection Objekt verfügen.

  • Sämtliche Authentifizierungsinformationen, die zur Herstellung der Verbindung und zur erfolgreichen Anmeldung beim Server erforderlich sind, sind im ServerConnection-Objekt angegeben.

  • Standardmäßig werden Verbindungen mithilfe der Microsoft Windows-Authentifizierung hergestellt. Um die SQL Server-Authentifizierung zu verwenden, LoginSecure muss auf "False" LoginPassword festgelegt und auf eine gültige SQL Server-Anmeldung und ein gültiges Kennwort festgelegt werden. Sicherheitsanmeldeinformationen müssen immer sicher gespeichert und verarbeitet und jederzeit zur Laufzeit bereitgestellt werden.

  • Die Connect Methode muss aufgerufen werden, bevor die Verbindung an jedes RMO-Programmierobjekt übergeben wird.

Beispiele

Um ein codebeispiel zu verwenden, das bereitgestellt wird, müssen Sie die Programmierumgebung, die Programmiervorlage und die Programmiersprache auswählen, in der Ihre Anwendung erstellt werden soll. Weitere Informationen finden Sie unter "How to: Create a Visual Basic SMO Project in Visual Studio .NET" oder "How to: Create a Visual C# SMO Project in Visual Studio .NET" in SQL Server Books Online.

Herstellen einer Verbindung mit der lokalen Instanz von SQL Server mithilfe der Windows-Authentifizierung in Visual Basic

Für die Verbindung mit der lokalen Instanz von SQL Server ist kein großer Code erforderlich. Stattdessen basiert sie auf den Standardeinstellungen für die Authentifizierungsmethode und den Server. Der erste Vorgang, für den Daten abgerufen werden müssen, führt dazu, dass eine Verbindung erstellt wird.

Dieses Beispiel ist Visual Basic .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit der lokalen Instanz von SQL Server herstellt.

Herstellen einer Verbindung mit der lokalen Instanz von SQL Server mithilfe der Windows-Authentifizierung in Visual C#

Für die Verbindung mit der lokalen Instanz von SQL Server ist kein großer Code erforderlich. Stattdessen basiert sie auf den Standardeinstellungen für die Authentifizierungsmethode und den Server. Der erste Vorgang, für den Daten abgerufen werden müssen, führt dazu, dass eine Verbindung erstellt wird.

Dieses Beispiel ist Visual C# .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit der lokalen Instanz von SQL Server herstellt.

{   
//Connect to the local, default instance of SQL Server.   
Server srv;   
srv = new Server();   
//The connection is established when a property is requested.   
Console.WriteLine(srv.Information.Version);   
}   
//The connection is automatically disconnected when the Server variable goes out of scope.  

Herstellen einer Verbindung mit einer Remoteinstanz von SQL Server mithilfe der Windows-Authentifizierung in Visual Basic

Wenn Sie eine Verbindung mit einer Instanz von SQL Server mithilfe der Windows-Authentifizierung herstellen, müssen Sie den Authentifizierungstyp nicht angeben. Die Windows-Authentifizierung ist als Standard vorgegeben.

Dieses Beispiel ist Visual Basic .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit der Remoteinstanz von SQL Server herstellt. Die Zeichenfolgenvariable strServer enthält den Namen der Remoteinstanz.

Herstellen einer Verbindung mit einer Remoteinstanz von SQL Server mithilfe der Windows-Authentifizierung in Visual C#

Wenn Sie eine Verbindung mit einer Instanz von SQL Server mithilfe der Windows-Authentifizierung herstellen, müssen Sie den Authentifizierungstyp nicht angeben. Die Windows-Authentifizierung ist als Standard vorgegeben.

Dieses Beispiel ist Visual C# .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit der Remoteinstanz von SQL Server herstellt. Die Zeichenfolgenvariable strServer enthält den Namen der Remoteinstanz.

{   
//Connect to a remote instance of SQL Server.   
Server srv;   
//The strServer string variable contains the name of a remote instance of SQL Server.   
srv = new Server(strServer);   
//The actual connection is made when a property is retrieved.   
Console.WriteLine(srv.Information.Version);   
}   
//The connection is automatically disconnected when the Server variable goes out of scope.  

Herstellen einer Verbindung mit einer SQL Server-Instanz mithilfe der SQL Server-Authentifizierung in Visual Basic

Wenn Sie eine Verbindung mit einer Instanz von SQL Server mithilfe der SQL Server-Authentifizierung herstellen, müssen Sie den Authentifizierungstyp angeben. In diesem Beispiel wird die alternative Methode zum Deklarieren einer ServerConnection Objektvariable veranschaulicht, mit der die Verbindungsinformationen wiederverwendet werden können.

Das Beispiel ist Visual Basic .NET-Code, der veranschaulicht, wie eine Verbindung mit dem Remote- und vPassword-Element die Anmeldung und das Kennwort enthalten.

' compile with:   
' /r:Microsoft.SqlServer.Smo.dll  
' /r:Microsoft.SqlServer.ConnectionInfo.dll  
' /r:Microsoft.SqlServer.Management.Sdk.Sfc.dll   
  
Imports Microsoft.SqlServer.Management.Smo  
Imports Microsoft.SqlServer.Management.Common  
  
Public Class A  
   Public Shared Sub Main()  
      Dim sqlServerLogin As [String] = "user_id"  
      Dim password As [String] = "pwd"  
      Dim instanceName As [String] = "instance_name"  
      Dim remoteSvrName As [String] = "remote_server_name"  
  
      ' Connecting to an instance of SQL Server using SQL Server Authentication  
      Dim srv1 As New Server()   ' connects to default instance  
      srv1.ConnectionContext.LoginSecure = False   ' set to true for Windows Authentication  
      srv1.ConnectionContext.Login = sqlServerLogin  
      srv1.ConnectionContext.Password = password  
      Console.WriteLine(srv1.Information.Version)   ' connection is established  
  
      ' Connecting to a named instance of SQL Server with SQL Server Authentication using ServerConnection  
      Dim srvConn As New ServerConnection()  
      srvConn.ServerInstance = ".\" & instanceName   ' connects to named instance  
      srvConn.LoginSecure = False   ' set to true for Windows Authentication  
      srvConn.Login = sqlServerLogin  
      srvConn.Password = password  
      Dim srv2 As New Server(srvConn)  
      Console.WriteLine(srv2.Information.Version)   ' connection is established  
  
      ' For remote connection, remote server name / ServerInstance needs to be specified  
      Dim srvConn2 As New ServerConnection(remoteSvrName)  
      srvConn2.LoginSecure = False  
      srvConn2.Login = sqlServerLogin  
      srvConn2.Password = password  
      Dim srv3 As New Server(srvConn2)  
      Console.WriteLine(srv3.Information.Version)   ' connection is established  
   End Sub  
End Class  

Herstellen einer Verbindung mit einer Instanz von SQL Server mithilfe der SQL Server-Authentifizierung in Visual C#

Wenn Sie eine Verbindung mit einer Instanz von SQL Server mithilfe der SQL Server-Authentifizierung herstellen, müssen Sie den Authentifizierungstyp angeben. In diesem Beispiel wird die alternative Methode zum Deklarieren einer ServerConnection Objektvariable veranschaulicht, mit der die Verbindungsinformationen wiederverwendet werden können.

Das Beispiel ist Visual C# .NET-Code, der veranschaulicht, wie eine Verbindung mit dem Remote- und vPassword-Element die Anmeldung und das Kennwort enthalten.

// compile with:   
// /r:Microsoft.SqlServer.Smo.dll  
// /r:Microsoft.SqlServer.ConnectionInfo.dll  
// /r:Microsoft.SqlServer.Management.Sdk.Sfc.dll   
  
using System;  
using Microsoft.SqlServer.Management.Smo;  
using Microsoft.SqlServer.Management.Common;  
  
public class A {  
   public static void Main() {   
      String sqlServerLogin = "user_id";  
      String password = "pwd";  
      String instanceName = "instance_name";  
      String remoteSvrName = "remote_server_name";  
  
      // Connecting to an instance of SQL Server using SQL Server Authentication  
      Server srv1 = new Server();   // connects to default instance  
      srv1.ConnectionContext.LoginSecure = false;   // set to true for Windows Authentication  
      srv1.ConnectionContext.Login = sqlServerLogin;  
      srv1.ConnectionContext.Password = password;  
      Console.WriteLine(srv1.Information.Version);   // connection is established  
  
      // Connecting to a named instance of SQL Server with SQL Server Authentication using ServerConnection  
      ServerConnection srvConn = new ServerConnection();  
      srvConn.ServerInstance = @".\" + instanceName;   // connects to named instance  
      srvConn.LoginSecure = false;   // set to true for Windows Authentication  
      srvConn.Login = sqlServerLogin;  
      srvConn.Password = password;  
      Server srv2 = new Server(srvConn);  
      Console.WriteLine(srv2.Information.Version);   // connection is established  
  
      // For remote connection, remote server name / ServerInstance needs to be specified  
      ServerConnection srvConn2 = new ServerConnection(remoteSvrName);  
      srvConn2.LoginSecure = false;  
      srvConn2.Login = sqlServerLogin;  
      srvConn2.Password = password;  
      Server srv3 = new Server(srvConn2);  
      Console.WriteLine(srv3.Information.Version);   // connection is established  
   }  
}  

Siehe auch

Server
ServerConnection