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


Соединение с экземпляром SQL Server

Первым шагом в программировании приложения SQL Server Management Objects (SMO) является создание экземпляра объекта Server и установление его связи с экземпляром MicrosoftSQL 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, а свойства Login и Password должны содержать в качестве значений действующие имя пользователя и пароль SQL Server. Учетные данные безопасности нужно всегда защищать от возможного несанкционированного доступа и по возможности вводить только во время выполнения.

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

Примеры

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

Соединение с локальным экземпляром SQL Server с использованием проверки подлинности Windows в языке Visual Basic .NET

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

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

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

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

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

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

См. также

Справочник