Подключение к экземпляру SQL Server

Область применения:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics

Первым шагом программирования в приложении sql Server Management Objects (SMO) является создание экземпляра Server объекта и его подключение к экземпляру Microsoft SQL Server.

Экземпляр объекта можно создать Server и установить подключение к экземпляру SQL Server тремя способами. Первый способ — использовать переменную объекта ServerConnection для задания информации о соединении. Второй способ — задать информацию о соединении в явном виде, присвоив соответствующие значения свойствам объекта Server. Третье — передать имя экземпляра SQL Server в Server конструкторе объектов.

Использование объекта ServerConnection

Преимущество использования переменной объекта ServerConnection в том, что заданную информацию о соединении можно применять многократно. Объявите переменную объекта Server. Затем объявите ServerConnection объект и задайте свойства со сведениями о подключении, такими как имя экземпляра SQL Server и режим проверки подлинности. Затем передайте переменную объекта ServerConnection в качестве параметра конструктору объекта Server. Не рекомендуется совместно использовать подключения между различными объектами сервера одновременно. Чтобы получить копию настроек существующего соединения, вызовите метод Copy.

Явное задание свойств объекта сервера

Другая возможность — объявить переменную объекта Server и вызвать конструктор по умолчанию. Как показано ниже, Server объект пытается подключиться к экземпляру SQL Server по умолчанию со всеми параметрами подключения по умолчанию.

Указание имени экземпляра SQL Server в конструкторе объектов Server

Объявите Server переменную объекта и передайте имя экземпляра SQL Server в качестве строкового параметра в конструкторе. Объект Server устанавливает соединение с экземпляром SQL Server с параметрами подключения по умолчанию.

Объединение подключений в пул

Connect Вызов метода ServerConnection объекта не требуется. После завершения операций SMO автоматически устанавливает подключения при необходимости и возвращает их в пул подключений. При вызове Connect метода подключение не будет выпущено в пул. Для этого необходимо явно использовать Disconnect метод. Кроме того, можно получить непулевое подключение, изменив NonPooledConnection свойство ServerConnection объекта.

Многопоточные приложения

Для многопоточных приложений в каждом потоке должен использоваться отдельный объект ServerConnection.

Подключение к экземпляру SQL Server для RMO

Объекты RMO используют несколько отличный от SMO подход для соединения с сервером репликации.

Для объектов программирования RMO требуется подключение к экземпляру SQL Server с помощью ServerConnection объекта, реализуемого пространством имен Microsoft.SqlServer.Management.Common . Это соединение с сервером производится независимо от программного объекта RMO. Затем он передается объекту RMO во время создания экземпляра или по назначению ConnectionContext свойству объекта. Это позволяет создать экземпляр объекта программирования RMO независимо от объекта соединения и разделить задачи их управления. Один объект соединения можно использовать с несколькими объектами программирования RMO. Для соединений с сервером репликации действуют следующие правила.

  • Все свойства соединения определяются для конкретного объекта ServerConnection.

  • Каждое подключение к экземпляру SQL Server должно иметь собственный ServerConnection объект.

  • Все сведения о проверке подлинности для подключения и успешного входа на сервер предоставляются в объекте ServerConnection .

  • По умолчанию соединения устанавливаются с использованием проверки подлинности Windows. Чтобы использовать проверку подлинности SQL Server, LoginSecure необходимо задать значение False и PasswordLogin установить допустимый вход и пароль SQL Server. Учетные данные безопасности нужно всегда защищать от возможного несанкционированного доступа и по возможности вводить только во время выполнения.

  • До передачи соединения любому объекту программирования RMO следует вызвать метод Connect.

Примеры

Чтобы использовать любой приведенный пример кода, необходимо выбрать среду программирования, шаблон программирования и язык программирования, в котором будет создано приложение. Дополнительные сведения см. в статье "Создание проекта SMO Visual C# в Visual Studio .NET".

Подключение к локальному экземпляру SQL Server с помощью проверки подлинности Windows в Visual Basic

Для подключения к локальному экземпляру SQL Server не требуется много кода. Вместо этого для метода проверки подлинности и сервера используются настройки по умолчанию. Первая операция, требующая получения данных, приводит к созданию подключения.

Этот пример — это код .NET Visual Basic, который подключается к локальному экземпляру SQL Server с помощью проверки подлинности 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.

Подключение к локальному экземпляру SQL Server с помощью проверки подлинности Windows в Visual C#

Для подключения к локальному экземпляру SQL Server не требуется много кода. Вместо этого для метода проверки подлинности и сервера используются настройки по умолчанию. Первая операция, требующая получения данных, приводит к созданию подключения.

Этот пример — код Visual C# .NET, который подключается к локальному экземпляру SQL Server с помощью проверки подлинности 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.

Подключение к удаленному экземпляру SQL Server с помощью проверки подлинности Windows в Visual Basic

При подключении к экземпляру SQL Server с помощью проверки подлинности Windows вам не нужно указывать тип проверки подлинности. По умолчанию используется проверка подлинности Windows.

Этот пример — код .NET Visual Basic, который подключается к удаленному экземпляру SQL Server с помощью проверки подлинности Windows. Строковая переменная strServer содержит имя удаленного экземпляра.

'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.

Подключение к удаленному экземпляру SQL Server с помощью проверки подлинности Windows в Visual C#

При подключении к экземпляру SQL Server с помощью проверки подлинности Windows вам не нужно указывать тип проверки подлинности. По умолчанию используется проверка подлинности Windows.

Этот пример — код Visual C# .NET, который подключается к удаленному экземпляру SQL Server с помощью проверки подлинности Windows. Строковая переменная strServer содержит имя удаленного экземпляра.

{
//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.

Подключение к экземпляру SQL Server с помощью проверки подлинности SQL Server в Visual Basic

При подключении к экземпляру SQL Server с помощью проверки подлинности SQL Server необходимо указать тип проверки подлинности. В данном примере демонстрируется альтернативный метод объявления переменной объекта ServerConnection, позволяющий повторно использовать информацию соединения.

Примером является код .NET Visual Basic, демонстрирующий подключение к удаленному и vPassword , содержащий вход и пароль.

' 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

Подключение к экземпляру SQL Server с помощью проверки подлинности SQL Server в Visual C#

При подключении к экземпляру SQL Server с помощью проверки подлинности SQL Server необходимо указать тип проверки подлинности. В данном примере демонстрируется альтернативный метод объявления переменной объекта ServerConnection, позволяющий повторно использовать информацию соединения.

Примером является код Visual C# .NET, демонстрирующий подключение к удаленному и vPassword , содержащий вход и пароль.

// 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
   }
}

См. также

Server ServerConnection