Поделиться через


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

Первым шагом программирования в приложении 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 метода. Кроме того, можно запросить подключение, отличное от пулаServerConnection, задав NonPooledConnection свойство объекта.

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

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

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

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

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

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

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

  • Все данные проверки подлинности, необходимые для установления соединения и входа на сервер, передаются в объекте ServerConnection.

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

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

Примеры

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

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

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

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

Подключение к локальному экземпляру 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 содержит имя удаленного экземпляра.

Подключение к удаленному экземпляру 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