Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

9.2.3. Объект SMO.Server

Объект SMO.Server, объект Configuration, коллекции Databases и Logins

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

Создание этого объекта выглядит очень просто:

Dim oSrv As New Server

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

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

Если вам нужно использовать аутентификацию SQL Server, то придется вначале создать и настроить объект Microsoft.SQLServer.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, можно использовать свойства и методы этого объекта, чтобы непосредственно с их помощью выполнять какие-то действия или получать доступ к другим объектам SQL Server (базам данных, логинам и т. п.). Далее представлен список самых важных свойств объекта SMO.Server с комментариями:

q      BackupDevices — возвращает коллекцию BackupDeviceCollection, представляющую логические устройства резервного копирования, созданные на данном сервере. Обычно эта коллекция используется для получения информации о логических устройствах резервного копирования на сервере (объектах BackupDevice) и для их программного создания;

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

MsgBox(oSrv.Configuration.IsSqlClrEnabled.RunValue)

А включить этот параметр (т. е. разрешить работу со сборками) можно следующим образом:

 oSrv.Configuration.IsSqlClrEnabled.ConfigValue = 1

 oSrv.Configuration.Alter()

Другие наборы настроек для сервера доступны при помощи его свойства Settings. Еще одно свойство Information отвечает за параметры работы сервера, которые программным образом изменить нельзя (версия, локализация сервера, количество процессоров в системе и т. п.);

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

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

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

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

For Each oJob In oSrv.JobServer.Jobs

    MsgBox(oJob.Name)

Next

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

Dim oLinkedServer As New LinkedServer(oSrv, "LONDON7")

oLinkedServer.ProductName = "SQL Server"

oLinkedServer.Create()

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

Dim oLogin As New Login(oSrv, "NewSMOLogin")

oLogin.LoginType = LoginType.SqlLogin

oLogin.Create("P@ssw0rd")

В этом коде "NewSMOLogin" — это, конечно, название создаваемого логина, LoginType.SqlLogin — тип логина, а "P@ssw0rd" — пароль для создаваемой учетной записи (другим путем указать его не получится);

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

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

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

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

А теперь рассмотрим самые важные методы объекта SMO.Server:

q      Alter() — этот метод вызывается после изменения параметров настройки сервера. Чаще всего этот метод используется не для сервера, а для объектов Configuration и Settings;

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

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

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

MsgBox(oSrv.GetActiveDBConnectionCount("db1"))

Обычно применяется для проверок перед выполнением с базой данных каких-либо операций;

q      GetSMOObject() — очень важный метод, позволяющий получить ссылку на объект в иерархии объектов SQL Server по уникальному пути к нему в формате URN;

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

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

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

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

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

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru