Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Dim oSrv As New Server



2.Для подключения при помощи аутентификации Windows к серверу SQL Server на другом компьютере или к именованному экземпляру на локальном компьютере, используется другой вариант:

Dim oSrv As New Server("Server1\Instance2")

3. Если для подключения нужно использовать аутентификацию SQL Server, то придется вначале создать и настроить объект SQL.Server.Management.Common.ServerConnection, а затем передать его в качестве параметра конструктору объекта SMO.Server:

Dim oConn As New ServerConnection
oConn.ServerInstance = "Server1\Instance2"
oConn.LoginSecure = False 'Выбираем аутентификацию SQL Server
oConn.Login = "sa"
oConn.Password = "P@ssw0rd"

Dim oSrv As New Server(oConn)
MsgBox(oSrv.Name) 'Проверяем

 

После создания объекта SMO.Server можно использовать свойства и методы этого объекта — либо для того, чтобы с их помощью непосредственно выполнить какие-то действия, либо для получения доступа к другим объектам SQL Server (базам данных, учетными записями и т.п.).

Основные свойства объекта SMO.Server:

· BackupDevices — возвращает коллекцию BackupDeviceCollection, представляющую логические устройства резервного копирования, созданные на данном сервере;

· Configuration — это свойство возвращает объект Configuration, который представляет доступ к параметрам настройки сервера. Эти параметры обычно настраиваются или из свойств сервера в Management Studio, или при помощи Surface Area Configuration, или при помощи хранимой процедуры sp_configure. Например, узнать, разрешена ли на сервере работа со сборками .NET из кода Transact-SQL, можно так:

MsgBox(oSrv.Configuration.IsSqlClrEnabled.RunValue)

Включить этот параметр можно следующим образом:

oSrv.Configuration.IsSqlClrEnabled.ConfigValue = 1

oSrv.Configuration.Alter()

· Settings - это свойство возвращает другие наборы настроек для сервера;

· Information – свойство, отвечающее за параметры работы сервера, которые программным образом изменить невозможно (версия, язык, количество процессоров в системе и т.п.);

· Databases — при помощи этого свойства можно получить доступ к коллекции DatabaseCollection, в которой находятся объекты баз данных данного сервера;

· FullTextService — при помощи этого свойства можно получить доступ к одноименному объекту, представляющему службу полнотекстового поиска на SQL Server 2008;

· InstanceName — возвращает имя экземпляра SQL Server (например, Instance2). Информацию о полном имени сервера (вида Server1\Instance2) можно получить при помощи свойства Name;

· JobServer — при помощи этого объекта можно получить доступ как к настройкам SQL Server Agent, так и к его объектам, с возможностью их программного создания, изменения, запуска, удаления и т.п. Например, чтобы получить информацию обо всех заданиях SQL Server Agent на данном сервере, можно использовать код вида:

For Each oJob In oSrv.JobServer.Jobs
MsgBox(oJob.Name)
Next

· LinkedServers — это свойство возвращает коллекцию LinkedServers, представляющую объекты LinkedServer (подключенные серверы, к которым можно выполнять запросы из кода Transact-SQL). В Management Studio работа с ними производится из контейнера Server Objects àLinked Servers. Средствами SMO создать объект подключенного сервера можно, например, так:

Dim oLinkedServer As New LinkedServer(oSrv, "LONDON7")
oLinkedServer.ProductName = "SQL Server"
oLinkedServer.Create()

· Logins — это свойство позволяет получить доступ к коллекции LoginCollection, в которой находятся объекты Login. Эти объекты представляют объекты учетных записей на SQL Server. Создать новую учетную запись типа SQL Server можно, например, так:

Dim oLogin As New Login(oSrv, "NewSMOLogin1")
oLogin.LoginType = LoginType.SqlLogin
oLogin.Create("P@ssw0rd")

· Mail — при помощи этого свойства можно получить доступ к объекту SQLMail. Несмотря на название, этот объект представляет не подсистему SQLMail, а объекты Database Mail. Обычно он используется для того, чтобы программным путем создать или настроить профили и учетные записи Database Mail;

· NotificationServices — это свойство позволяет получить доступ к объекту NotificationServices, которое представляет службы Notification Services, установленные для данного экземпляра SQL Server. В отличие от других аналогичных ветвей, эта ветвь не позволяет получить нормальный доступ к функциональным возможностям Notification Services. Причина проста: для работы с Notification Services предназначен свой собственный набор программных объектов, который находится в пространстве имен Microsoft.SqlServer.Management.Nmo;

· ReplicationServer — это свойство позволяет получить доступ к объекту ReplicationServer, представляющему подсистему репликации на SQL Server 2008. Для управления репликацией также предусмотрен свой собственный набор объектов (RMO — Replication Management Objects), но корневым для всего многочисленного набора объектов репликации является именно объект ReplicationServer, доступ к которому производится при помощи этого свойства;

· Roles — это свойство позволяет получить доступ к объекту ServerRoleCollection, представляющему все роли сервера (объекты ServerRole). Эти объекты обычно используются для назначения серверных ролей учетным записям или отмены таких назначений.

Основные методы объекта SMO.Server

· Alter() — этот метод можно вызывать после изменения параметров настройки сервера. Обычно этот метод вызывается не для сервера, а для объектов Configuration и Settings;

· AttachDatabase() и DetachDatabase() — эти методы позволяют провести соответственно подключение и отключение базы данных к серверу с указанными вами параметрами;

· Enum...() — эти многочисленные методы позволяют вернуть (в виде объекта DataTable или соответствующей коллекции) информацию об объектах SQL Server. Например, метод EnumLocks() возвращает информацию обо всех блокировках на сервере, EnumProcesses() — обо всех процессах на сервере и т.п.;

· GetActiveDBConnectionCount() — позволяет узнать, сколько пользователей в настоящее время подключено к указанной базе данных, например:

MsgBox(oSrv.GetActiveDBConnectionCount("db1"))

· GetSMOObject() — позволяет получить ссылку на объект в иерархии объектов SQL Server по URN пути;

· KillAllProcesses() — этот метод принудительно отключает всех пользователей от указанной вами базы данных. Обычно используется перед выполнением каких-либо операций с базой данных;

· KillDatabase() — удаление указанной базы данных (вместе с файлами). Все имеющиеся в настоящее время подключения пользователей к этой базе данных будут принудительно закрыты;

· KillProccess() — возможность принудительно закрыть пользовательское подключение к SQL Server. Для процесса нужно указать его ID. ID процесса можно получить при помощи хранимых процедур (например, sp_who) или при помощи метода EnumProcesses();

· PingServerVersion() — этот метод принимает имя опрашиваемого сервера и возвращает объект ServerVersion с информацией о версии SQL Server (в трех частях). Этот метод очень удобно использовать для выявления серверов SQL Server, на которых не установлены пакеты обновлений и патчи;

· ReadErrorLog() — возвращает (при помощи объекта DataTable) информацию из текущего или указанного вами журнала ошибок SQL Server.