Herstellen einer Verbindung mit einer SQL Server-Instanz

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

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. Die erste Methode verwendet eine ServerConnection-Objektvariable, um die Verbindungsinformationen bereitzustellen. Die zweite Methode besteht darin, die Verbindungsinformationen durch die explizite Angabe der Server-Objekteigenschaften anzugeben. Der dritte besteht darin, den Namen der SQL Server-Instanz im Server Objektkonstruktor zu übergeben.

Verwenden eines ServerConnection-Objekts

Das Verwenden der ServerConnection-Objektvariable bietet den Vorteil, 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

Das Aufrufen der Connect Methode des ServerConnection Objekts ist nicht erforderlich. Nach Abschluss von Vorgängen stellt SMO bei Bedarf automatisch Verbindungen her und gibt sie an den Verbindungspool zurück. Wenn Sie die Connect Methode aufrufen, wird die Verbindung nicht für den Pool freigegeben. Um dies zu erreichen, müssen Sie die Disconnect Methode explizit verwenden. Darüber hinaus können Sie eine Nichtpoolverbindung abrufen, indem Sie die NonPooledConnection Eigenschaft des ServerConnection Objekts anpassen.

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 (RMO) unterscheiden sich im Aufbau einer Verbindung zu einem Replikationsserver leicht von SMO.

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 zum Server erfolgt unabhängig von einem RMO-Programmierobjekt. Anschließend wird es 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.

  • Alle Authentifizierungsinformationen, um die Verbindung herzustellen und sich erfolgreich beim Server anzumelden, werden im ServerConnection Objekt bereitgestellt.

  • Standardmäßig werden Verbindungen mit 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 vor Übergabe der Verbindung an ein RMO-Programmierobjekt aufgerufen werden.

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 Erstellen eines Visual C#-SMO-Projekts in Visual Studio .NET.

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. Für Authentifizierungsmethode und Server werden die Standardeinstellungen verwendet. Der erste Vorgang, für den Daten abgerufen werden müssen, bewirkt, 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.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
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 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. Für Authentifizierungsmethode und Server werden die Standardeinstellungen verwendet. Der erste Vorgang, für den Daten abgerufen werden müssen, bewirkt, 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.

'Connect to a remote instance of SQL Server.
Dim srv As Server
'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 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 ist eine Alternativmethode angegeben, mit der Sie eine ServerConnection-Objektvariable deklarieren und die Verbindungsinformationen wiederverwenden 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 ist eine Alternativmethode angegeben, mit der Sie eine ServerConnection-Objektvariable deklarieren und die Verbindungsinformationen wiederverwenden 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
   }
}

Weitere Informationen

Server ServerConnection