Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Baza danych SQL w usłudze Microsoft Fabric (wersja zapoznawcza)
Pierwszym krokiem programowania w aplikacji obiektów zarządzania programu SQL Server (SMO) jest utworzenie wystąpienia Server obiektu i nawiązanie połączenia z wystąpieniem programu Microsoft SQL Server.
Wystąpienie obiektu można utworzyć Server i nawiązać połączenie z wystąpieniem programu SQL Server na trzy sposoby. Pierwszy polega na użyciu zmiennej ServerConnection obiektu w celu dostarczenia informacji o połączeniu. Drugim jest podanie informacji o połączeniu przez jawne ustawienie Server właściwości obiektu. Trzecim elementem jest przekazanie nazwy wystąpienia programu SQL Server w konstruktorze Server obiektu.
Używanie obiektu ServerConnection
Zaletą używania zmiennej ServerConnection obiektu jest możliwość ponownego użycia informacji o połączeniu. Zadeklaruj zmienną Server obiektu. Następnie zadeklaruj ServerConnection obiekt i ustaw właściwości za pomocą informacji o połączeniu, takich jak nazwa wystąpienia programu SQL Server i tryb uwierzytelniania. Następnie przekaż zmienną ServerConnection obiektu jako parametr do konstruktora Server obiektu. Nie zaleca się współużytkowania połączeń między różnymi obiektami serwera w tym samym czasie. Copy Użyj metody , aby uzyskać kopię istniejących ustawień połączenia.
Jawne ustawianie właściwości obiektu serwera
Alternatywnie można zadeklarować zmienną Server obiektu i wywołać konstruktor domyślny. Podobnie jak w przypadku, Server obiekt próbuje nawiązać połączenie z domyślnym wystąpieniem programu SQL Server ze wszystkimi domyślnymi ustawieniami połączenia.
Podanie nazwy wystąpienia programu SQL Server w konstruktorze obiektu Serwera
Zadeklaruj zmienną Server obiektu i przekaż nazwę wystąpienia programu SQL Server jako parametr ciągu w konstruktorze. Obiekt Server nawiązuje połączenie z wystąpieniem programu SQL Server z domyślnymi ustawieniami połączenia.
Connection Pooling
Connect Wywoływanie metody ServerConnection obiektu jest niepotrzebne. Po zakończeniu operacji funkcja SMO automatycznie ustanawia połączenia w razie potrzeby i zwraca je do puli połączeń. Jeśli wywołasz metodę Connect , połączenie nie zostanie zwolnione z puli. Aby to osiągnąć, należy jawnie użyć Disconnect metody . Ponadto można uzyskać połączenie z pulą, dostosowując NonPooledConnection właściwość ServerConnection obiektu.
Multithreaded Applications
W przypadku aplikacji wielowątków należy użyć oddzielnego obiektu ServerConnection w każdym wątku.
Nawiązywanie połączenia z wystąpieniem programu SQL Server dla funkcji RMO
Obiekty zarządzania replikacją (RMO) używa nieco innej metody niż SMO do nawiązywania połączenia z serwerem replikacji.
Obiekty programowania RMO wymagają nawiązania połączenia z wystąpieniem programu SQL Server przy użyciu ServerConnection obiektu zaimplementowanego przez przestrzeń nazw Microsoft.SqlServer.Management.Common . To połączenie z serwerem jest wykonywane niezależnie od obiektu programowania RMO. Następnie jest przekazywany do obiektu RMO podczas tworzenia wystąpienia lub przez przypisanie do ConnectionContext właściwości obiektu. W ten sposób obiekt programowania RMO i wystąpienia obiektów połączenia można tworzyć i zarządzać oddzielnie, a pojedynczy obiekt połączenia może być ponownie używany z wieloma obiektami programowania RMO. Następujące reguły dotyczą połączeń z serwerem replikacji:
Wszystkie właściwości połączenia są definiowane dla określonego ServerConnection obiektu.
Każde połączenie z wystąpieniem programu SQL Server musi mieć własny ServerConnection obiekt.
Wszystkie informacje uwierzytelniania, aby nawiązać połączenie i pomyślnie zalogować się na serwerze, są dostarczane w ServerConnection obiekcie .
Domyślnie połączenia są wykonywane przy użyciu uwierzytelniania systemu Microsoft Windows. Aby używać uwierzytelniania programu SQL Server, LoginSecure należy ustawić wartość False i LoginPassword musi być ustawiona na prawidłowe logowanie i hasło programu SQL Server. Poświadczenia zabezpieczeń muszą być zawsze przechowywane i obsługiwane bezpiecznie i dostarczane w czasie wykonywania zawsze, gdy jest to możliwe.
Przed Connect przekazaniem połączenia do dowolnego obiektu programowania RMO należy wywołać metodę .
Examples
Aby użyć dowolnego podanego przykładu kodu, musisz wybrać środowisko programowania, szablon programowania i język programowania, w którym ma zostać utworzona aplikacja. Aby uzyskać więcej informacji, zobacz Create a Visual C# SMO Project in Visual Studio .NET(Tworzenie projektu SMO w programie Visual Studio .NET).
Nawiązywanie połączenia z lokalnym wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows w Visual Basic
Nawiązywanie połączenia z lokalnym wystąpieniem programu SQL Server nie wymaga dużo kodu. Zamiast tego opiera się na domyślnych ustawieniach metody uwierzytelniania i serwera. Pierwsza operacja, która wymaga pobrania danych, powoduje utworzenie połączenia.
W tym przykładzie jest kod platformy .NET języka Visual Basic, który łączy się z lokalnym wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows.
'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.
Nawiązywanie połączenia z lokalnym wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows w programie Visual C#
Nawiązywanie połączenia z lokalnym wystąpieniem programu SQL Server nie wymaga dużo kodu. Zamiast tego opiera się na domyślnych ustawieniach metody uwierzytelniania i serwera. Pierwsza operacja, która wymaga pobrania danych, powoduje utworzenie połączenia.
W tym przykładzie jest kod .NET języka Visual C#, który łączy się z lokalnym wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows.
{
//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.
Nawiązywanie połączenia z wystąpieniem zdalnym programu SQL Server przy użyciu uwierzytelniania systemu Windows w Visual Basic
Podczas nawiązywania połączenia z wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows nie trzeba określać typu uwierzytelniania. Uwierzytelnianie systemu Windows jest ustawieniem domyślnym.
W tym przykładzie jest kod platformy .NET języka Visual Basic, który łączy się ze zdalnym wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows. Zmienna ciągu strServer zawiera nazwę wystąpienia zdalnego.
'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.
Nawiązywanie połączenia z wystąpieniem zdalnym programu SQL Server przy użyciu uwierzytelniania systemu Windows w programie Visual C#
Podczas nawiązywania połączenia z wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows nie trzeba określać typu uwierzytelniania. Uwierzytelnianie systemu Windows jest ustawieniem domyślnym.
W tym przykładzie jest kod .NET języka Visual C#, który łączy się ze zdalnym wystąpieniem programu SQL Server przy użyciu uwierzytelniania systemu Windows. Zmienna ciągu strServer zawiera nazwę wystąpienia zdalnego.
{
//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.
Nawiązywanie połączenia z wystąpieniem programu SQL Server przy użyciu uwierzytelniania programu SQL Server w Visual Basic
Podczas nawiązywania połączenia z wystąpieniem programu SQL Server przy użyciu uwierzytelniania programu SQL Server należy określić typ uwierzytelniania. W tym przykładzie pokazano alternatywną metodę ServerConnection deklarowania zmiennej obiektu, która umożliwia ponowne użycie informacji o połączeniu.
Przykładem jest kod platformy .NET języka Visual Basic, który pokazuje, jak nawiązać połączenie ze zdalnym i vPasswordem zawierającym logowanie i hasło.
' 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
Nawiązywanie połączenia z wystąpieniem programu SQL Server przy użyciu uwierzytelniania programu SQL Server w programie Visual C#
Podczas nawiązywania połączenia z wystąpieniem programu SQL Server przy użyciu uwierzytelniania programu SQL Server należy określić typ uwierzytelniania. W tym przykładzie pokazano alternatywną metodę ServerConnection deklarowania zmiennej obiektu, która umożliwia ponowne użycie informacji o połączeniu.
Przykładem jest kod .NET języka Visual C#, który demonstruje sposób nawiązywania połączenia z zdalnym i wirtualnym elementem vPassword zawierającym logowanie i hasło.
// 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
}
}