Menyambungkan ke Instans SQL Server
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
Langkah pemrograman pertama dalam aplikasi SQL Server Management Objects (SMO) adalah membuat instans Server objek dan membangun koneksinya ke instans Microsoft SQL Server.
Anda dapat membuat instans Server objek dan membuat koneksi ke instans SQL Server dengan tiga cara. Yang pertama adalah menggunakan ServerConnection variabel objek untuk memberikan informasi koneksi. Yang kedua adalah memberikan informasi koneksi dengan secara eksplisit mengatur Server properti objek. Yang ketiga adalah meneruskan nama instans SQL Server di Server konstruktor objek.
Menggunakan objek ServerConnection
Keuntungan menggunakan ServerConnection variabel objek adalah informasi koneksi dapat digunakan kembali. Mendeklarasikan Server variabel objek. Kemudian, deklarasikan ServerConnection objek dan atur properti dengan informasi koneksi seperti nama instans SQL Server, dan mode autentikasi. Kemudian, teruskan ServerConnection variabel objek sebagai parameter ke Server konstruktor objek. Tidak disarankan untuk berbagi koneksi antara objek server yang berbeda secara bersamaan. Copy Gunakan metode untuk mendapatkan salinan pengaturan koneksi yang ada.
Mengatur properti objek Server secara eksplisit
Atau, Anda dapat mendeklarasikan Server variabel objek dan memanggil konstruktor default. Apa adanya Server , objek mencoba menyambungkan ke instans default SQL Server dengan semua pengaturan koneksi default.
Memberikan nama instans SQL Server di konstruktor objek Server
Deklarasikan Server variabel objek dan berikan nama instans SQL Server sebagai parameter string di konstruktor. Objek Server membuat koneksi dengan instans SQL Server dengan pengaturan koneksi default.
Kumpulan koneksi
Memanggil Connect metode ServerConnection objek tidak perlu. Setelah operasi selesai, SMO secara otomatis membuat koneksi saat diperlukan dan mengembalikannya ke kumpulan koneksi. Jika Anda memanggil Connect metode , koneksi tidak akan dirilis ke kumpulan. Untuk mencapainya, Anda perlu menggunakan Disconnect metode secara eksplisit. Selain itu, Anda dapat memperoleh koneksi yang tidak terisi dengan menyesuaikan NonPooledConnection properti ServerConnection objek.
Aplikasi Multithreaded
Untuk aplikasi multithread, objek terpisah ServerConnection harus digunakan di setiap utas.
Menyambungkan ke Instans SQL Server untuk RMO
Objek Manajemen Replikasi (RMO) menggunakan metode yang sedikit berbeda dari SMO untuk menyambungkan ke server replikasi.
Objek pemrograman RMO mengharuskan koneksi ke instans SQL Server dibuat dengan menggunakan objek yang ServerConnection diterapkan oleh namespace Microsoft.SqlServer.Management.Common . Koneksi ke server ini dibuat secara independen dari objek pemrograman RMO. Kemudian diteruskan ke objek RMO baik selama pembuatan instans atau dengan penugasan ke ConnectionContext properti objek. Dengan cara ini, objek pemrograman RMO dan instans objek koneksi dapat dibuat dan dikelola secara terpisah, dan satu objek koneksi dapat digunakan kembali dengan beberapa objek pemrograman RMO. Aturan berikut berlaku untuk koneksi ke server replikasi:
Semua properti untuk koneksi ditentukan untuk objek tertentu ServerConnection .
Setiap koneksi ke instans SQL Server harus memiliki objeknya sendiri ServerConnection .
Semua informasi autentikasi untuk membuat koneksi dan berhasil masuk ke server disediakan dalam ServerConnection objek.
Secara default, koneksi dibuat dengan menggunakan Autentikasi Microsoft Windows. Untuk menggunakan Autentikasi SQL Server, LoginSecure harus diatur ke False dan Login dan Password harus diatur ke masuk dan kata sandi SQL Server yang valid. Kredensial keamanan harus selalu disimpan dan ditangani dengan aman, dan disediakan pada waktu proses jika memungkinkan.
Metode Connect harus dipanggil sebelum meneruskan koneksi ke objek pemrograman RMO apa pun.
Contoh
Untuk menggunakan contoh kode apa pun yang disediakan, Anda harus memilih lingkungan pemrograman, templat pemrograman, dan bahasa pemrograman untuk membuat aplikasi Anda. Untuk informasi selengkapnya, lihat Membuat Proyek SMO Visual C# di Visual Studio .NET.
Menyambungkan ke Instans Lokal SQL Server dengan Menggunakan Autentikasi Windows di Visual Basic
Menyambungkan ke instans lokal SQL Server tidak memerlukan banyak kode. Sebaliknya, ini bergantung pada pengaturan default untuk metode autentikasi dan server. Operasi pertama yang mengharuskan data diambil menyebabkan koneksi dibuat.
Contoh ini adalah kode Visual Basic .NET yang tersambung ke instans lokal SQL Server dengan menggunakan Autentikasi 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.
Menyambungkan ke Instans Lokal SQL Server dengan Menggunakan Autentikasi Windows di Visual C#
Menyambungkan ke instans lokal SQL Server tidak memerlukan banyak kode. Sebaliknya, ini bergantung pada pengaturan default untuk metode autentikasi dan server. Operasi pertama yang mengharuskan data diambil menyebabkan koneksi dibuat.
Contoh ini adalah kode Visual C# .NET yang tersambung ke instans lokal SQL Server dengan menggunakan Autentikasi 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.
Menyambungkan ke Instans Jarak Jauh SQL Server dengan Menggunakan Autentikasi Windows di Visual Basic
Saat Anda tersambung ke instans SQL Server dengan menggunakan Autentikasi Windows, Anda tidak perlu menentukan jenis autentikasi. Autentikasi Windows adalah default.
Contoh ini adalah kode Visual Basic .NET yang tersambung ke instans jarak jauh SQL Server dengan menggunakan Autentikasi Windows. Variabel string strServer berisi nama instans jarak jauh.
'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.
Menyambungkan ke Instans Jarak Jauh SQL Server dengan Menggunakan Autentikasi Windows di Visual C#
Saat Anda tersambung ke instans SQL Server dengan menggunakan Autentikasi Windows, Anda tidak perlu menentukan jenis autentikasi. Autentikasi Windows adalah default.
Contoh ini adalah kode .NET Visual C# yang tersambung ke instans jarak jauh SQL Server dengan menggunakan Autentikasi Windows. Variabel string strServer berisi nama instans jarak jauh.
{
//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.
Menyambungkan ke Instans SQL Server dengan Menggunakan Autentikasi SQL Server di Visual Basic
Saat Anda tersambung ke instans SQL Server dengan menggunakan Autentikasi SQL Server, Anda harus menentukan jenis autentikasi. Contoh ini menunjukkan metode alternatif untuk mendeklarasikan ServerConnection variabel objek, yang memungkinkan informasi koneksi digunakan kembali.
Contohnya adalah kode Visual Basic .NET yang menunjukkan cara menyambungkan ke remote dan vPassword berisi rincian masuk dan kata sandi.
' 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
Menyambungkan ke Instans SQL Server dengan Menggunakan Autentikasi SQL Server di Visual C#
Saat Anda tersambung ke instans SQL Server dengan menggunakan Autentikasi SQL Server, Anda harus menentukan jenis autentikasi. Contoh ini menunjukkan metode alternatif untuk mendeklarasikan ServerConnection variabel objek, yang memungkinkan informasi koneksi digunakan kembali.
Contohnya adalah kode Visual C# .NET yang menunjukkan cara menyambungkan ke remote dan vPassword berisi rincian masuk dan kata sandi.
// 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
}
}