Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
}
}