авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 7 | 8 || 10 | 11 |   ...   | 33 |

«Е.Мамаев MS SQL SERVER 2000 Книга посвящена одной из самых мощных и популярных современных систем управления базами данных - Microsoft SQL Server 2000. ...»

-- [ Страница 9 ] --

Просмотр отображений Если вы определили множество отображений для связанных серверов, то вряд ли будете помнить о каждом из них спустя несколько недель или даже месяцев. Од нако бывает необходимо просмотреть, в какую учетную запись связанного сервера отображается каждый из локальных пользователей. Это можно выполнить различ ными путями. Один из них подразумевает непосредственное обращение к систем ным таблицам с помощью команд SELECT, тогда как другой предполагает исполь зование системной хранимой процедуры sp_helplmkedsrvlogin.

В принципе, хранимая процедуры в конце концов является тем же самым запросом SELECT, поэтому в большинстве случаев удобнее применять уже имеющиеся средства просмотра информации об отображении учетных записей, чем писать свой собст венный запрос. Однако в некоторых ситуациях все же нужно получить дополни тельную Информацию, Не отображаемую Процедурой spjielplinkedsrvlogin.

В этих случаях без использования прямого обращения к системным -пблицам не обойтись. Однако в этом разделе мы ограничимся рассмотрением npi. аения ин терфейса хранимой процедуры sp_helplinkedsrviogin, имеющей синтаксис:

sp_helplinkedsrvlogin [[drmtsrvname =] 'rmtsrvname'] [, [Olocallogin =] 'locallogin 1 ] При вызове процедуры без параметров будет выведена информация обо всех имеющихся отображениях для всех сконфигурированных связанных серверов.

Если необходимо получить сведения об отображениях, определенных для кон кретного связанного сервера, то следует с помощью параметра @rmtsrvname ука зать имя интересующего сервера.

Когда же нужно получить информацию обо всех отображениях конкретной ло кальной учетной записи, сделанных для всех связанных серверов, то этого мож но добиться использованием параметра e i o c a l l o g i n с указанием имени интере сующей учетной записи. При указании как параметра @rmtsrvname, так и параметра e i o c a i i o g i n будет выведена информация об отображении конкрет ной учетной записи для конкретного связанного сервера.

Глава 10. Административные задачи.

Результатом выполнения процедуры s p h e i p i i n k e d s r v i o g i n будет набор строк, каждая из которых соответствует отдельному отображению. Информация выво дится в столбцах:

П Linked Server — имя связанного сервера, для которого определено отобра жение;

П Local Login — имя локальной учетной записи, для которой определено ото бражение;

• is self Mapping — если в этом столбце указывается значение 1, то учетная запись Windows NT получит на связанном сервере права на основе аутенти фикации Windows NT. Для учетных записей SQL Server всегда указывается значение 0;

П Remote Login — имя учетной записи на связанном сервере, в которую отобра жается локальная учетная запись, указанная в столбце Local Login. Если для учетных записей Windows NT используется отображение в себя (в столбце is self Mapping выведено значение 1), то в этом столбце будет значение NULL.

В качестве примера рассмотрим получение списка всех имеющихся отображений:

E E sp_helplinkedsrvlogin XC Будет получен следующий результат:

Linked Server Local Login Is Self Mapping Remote Login JM NULL 0 NULL DM NULL 1 NULL STORAGE NULL 1 NULL STORAGE\TRELON sa 0 sa STORAGE\TRELON STORAGE\Administrator NULL TRELON NULL 1 NULL (6 row(s) affected) Теперь же попробуем получить список отображений, определенных для сервера STORAGE\Trelon:

EXEC sphelplinkedsrvlogin 'STORAGE\Trelon' Будет получен результат:

Linked server Local Login Is Self Mapping Remote Login sa STORAGEXTRELON sa NULL STORAGEXTRELON STORAGE\Administrator (2 row(s) affected) Удаление отображения Мы рассмотрели добавление отображения для связанного сервера. Теперь же рассмотрим удаление имеющегося отображения. Это можно сделать либо с по мощью хранимой процедуры sp_droplinkedsrviogin, либо путем непосредст венного обращения к таблице sysxlogins через команду DELETE.

294 Часть III. Администрирование В последнем случае необходимо найти нужную строку в таблице sysxiogins.

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

Идентификационный номер связанного сервера можно просмотреть в таблице sysservers. В столбце srvname указывается имя связанного сервера, присвоен ное ему при создании. Идентификационный номер же выводится в столбце srvid. Например, для просмотра списка имен и идентификационных номеров имеющихся связанных серверов можно выполнить следующий запрос:

SELECT srvid, srvname FROM sysservers Будет выведен результат, подобный приведенному ниже:

srvid srvname (5 row(s) affected) После того, как идентификационный номер нужного связанного сервера будет определен, необходимо найти в таблице sysxiogins строку для нужной учетной записи. Для просмотра списка всех локальных учетных записей, отображаемых на связанный сервер, можно выполнить запрос:

SELECT syslogins.name FROM syslogins, sysxiogins WHERE srvid = 3 AND syslogins.sid = sysxiogins.sid Вместо цифры З следует подставить идентификационный номер нужного серве ра. В результате выполнения запроса будет выведен список имен учетных запи сей и их идентификаторов безопасности (SID, Security Identificator). Остается только запустить команду DELETE, ограничив список строк указанием иденти фикационного номера сервера и SID нужного пользователя. Команда DELETE будет иметь примерно следующий вид:

DELETE F O sysxiogins WHERE s r v i d = 3 AND RM SID = Ox010500000000000515000000833D2B4 654190E291525AF47F ( Замечание } Подобная операция удаления строки из системной таблицы требует прямого досту па к системным объектам. По умолчанию доступ к системным объектам не предос тавляется. Для его разрешения можно воспользоваться вкладкой Server Settings окна свойств сервера или выполнить команду EXEC sp_configure ' a l l o w up dates 1, l. Более подробно предоставление прямого доступа к системным табли цам было рассмотрено в разд. "Вкладка Server Settings" главы 8.

Как видно, удаление отображения учетных записей для связанного сервера путем непосредственного обращения к системной таблице sysxiogins требует опреде ленных усилий и нескольких предварительных операций. При управлении боль шим количеством отображений такой метод работы будет обременительным.

Глава 10. Административные задачи Более простым способом удаления отображения является использование храни мой процедуры sp_droplinkedsrvlogin. Она сама выполняет все необходимые промежуточные операции, предоставляя администратору удобный механизм управления отображением учетных записей. Синтаксис процедуры таков:

sp_droplinkedsrvlogin [Srmtsrvname =] 'rmtsrvname', [Slocallogin =] 'locallogin' Как видно, процедура имеет всего два параметра, и оба они являются обяза тельными. Параметр [Srmtsrvname =] 'rmtsrvname' определяет И Я связанного М сервера, для которого необходимо удалить отображение. Учетная запись, ото бражение которой предполагается удалить, указывается с помощью параметра [Siocallogin =] ' l o c a l l o g i n '. Правами выполнения этой хранимой процеду ры обладают члены фиксированных ролей сервера sysadmin и securityadmin.

В качестве примера рассмотрим удаление отображения для учетной записи Windows NT с именем storage\Administrator, определенного для связанного Сервера STORAGE\Trelon:

EXEC sp_droplinkedsrvlogin 'STORAGE\trelon', 'STORAGE\Administrator' На этом управление отображением локальных учетных записей в учетные запи си связанного сервера заканчивается.

Конфигурирование связанного сервера Помимо параметров, указываемых при создании связанного сервера, имеется еше ряд параметров, влияющих на отработку запросов к этому связанному серверу. К ним относится информация о сопоставлениях (текстовых данных), периоде ожи дания установления соединения, периоде ожидания выполнения запроса, разре шении обращения к связанному серверу и некоторые другие параметры.

( Замечание ) Текущие парамзтры настройки связанного сервера хранятся в столбце s r v s t a t u s таблицы sysservers. Для каждого значения отводится один из битов. Выставление бита соответствует установленной опции и наоборот. В принципе, управление кон фигурацией связанных серверов можно выполнять путем изменения значений в столбце s r v s t a t u s. Однако данный метод требует знания назначения каждого из битов. Более простым и удобным вариантом является запуск хранимой процедуры.

Управление опциями конфигурации связанного сервера осуществляется с по мощью системной хранимой процедуры sp_serveroption, имеющей синтаксис:

sp_serveroption [@server =] 'server 1, [@optname =] 'option_name', [Goptvalue =] 'option_value' ( Замечание } Право на выполнение указанной хранимой процедуры имеют члены фиксированных ролей сервера sysadmin И Setupadmin.

Часть III. Администрирование Рассмотрим назначение и использование параметров процедуры.

G [gserver =] 'server' Параметр определяет имя связанного сервера, настройками которого пред полагается управлять. Указываемый связанный сервер должен быть создан, т. е. в столбце srvname таблицы sysservers должно иметься значение, ука занное с помощью параметра Sserver. Параметр имеет тип данных sysname, значение по умолчанию не определено.

П [@optname =] 'option_name' С помощью этого параметра указывается имя опции конфигурации связан ного сервера, которой предполагается управлять. В табл. 10.2 приведен спи сок всех допустимых значений, а также дано краткое описание каждой из них. Параметр имеет тип данных varchar(35), значение по умолчанию не определено.

Таблица 10.2. Опции конфигурации связанного сервера Глава 10. Административные задачи Таблица 10.2 (окончание) П [goptvalue =] 'option_value' Параметр определяет значение, которое будет присвоено для опции конфи гурации сервера, указанной с помощью @optname. Для большинства опций указывается либо TRUE ИЛИ ON ДЛЯ установки опции, либо FALSE ИЛИ OFF ДЛЯ запрещения опции. Однако для опций, определяющих период ожидания, указывается целое значение, а для параметра c o l l a t i o n name — имя одного из сопоставлений SQL Server.

Рассмотрим несколько примеров конфигурирования параметров связанного сервера. В приведенном ниже варианте разрешается выполнение удаленных за просов к связанному серверу STORAGEXTrelon:

EXEC sp_serveroption 'STORAGEXTrelon', 'data access', 'TRUE' 298 Часть III. Администрирование Теперь же укажем, что связанный сервер имеет те же параметры, что и локаль ный сервер:

EXEC sp_serveroption 'STORAGE\Trelon', 'collation compatible', 'ON' Удаление связанного сервера Как бы хорошо ни планировалась структура сети, все же в нее иногда требуется вносить изменения. Как частный случай, это требует удаления связанных серверов.

Удаление связанного сервера выполняется с помощью системной хранимой процедуры s p d r o p s e r v e r, имеющей синтаксис:

sp_dropserver [gserver =] 'server' [, [gdroplogins =] { 'droplogins' I NULL}] Параметр @server определяет имя связанного сервера, который необходимо удалить. После удаления связанного сервера не должно остаться информации об отображениях локальных учетных записей в учетные записи удаленного сервера.

Для удовлетворения этого требования можно либо предварительно удалить все отображения вручную (это было рассмотрено в одном из предыдущих разделов), либо воспользоваться возможностью автоматического удаления всех отображе ний при удалении связанного сервера с помощью хранимой процедуры s p d r o p s e r v e r. Для этого предназначен параметр gdroplogins, для которого необходимо указать значение • d r o p l o g i n s '.

Например, для удаления связанного сервера STORAGE\Treion с изъятием всех отображений учетных записей необходимо использовать команду:

EXEC sp_dropserver 'STORAGE\Trelon', 'droplogins' На этом рассмотрение связанных серверов можно считать законченным.

Использование Enterprise Manager В предыдущих разделах рассматривалось управление связанными серверами с помощью средств Transact-SQL — в основном с помощью системных хранимых процедур, но также была дана информация о том, как SQL Server 2000 хранит информацию о связанных серверах. Если возникнет необходимость, то, основы ваясь на приведенной информации, вы сможете написать свои собственные хранимые процедуры для управления связанными серверами.

По сравнению с использованием команд непосредственного доступа к систем ным таблицам (SELECT, UPDATE, DELETE И INSERT) хранимые процедуры являются довольно удобным средством, избавляющим от необходимости досконально помнить все аспекты представления связанных серверов на уровне системных таблиц. Однако и использование хранимых процедур требует определенных зна ний. В частности, администратор либо должен держать в голове синтаксис хра нимых процедур и помнить назначение всех параметров, либо постоянно иметь под рукой справочное руководство.

Глава 10, Административные задачи Это довольно обременительно и не каждый администратор захочет держать в голове синтаксис процедуры, которой может воспользоваться всего один-два раза. Гораздо более удобным было бы иметь инструмент, предлагающий графи ческий интерфейс для выполнения административных задач. Таким инструмен том в SQL Server 2000 является Enterprise Manager, который также позволяет управлять и связанными серверами.

с Замечание Enterprise Manager представляет всего-навсего удобный и интуитивно понятный ин терфейс для указания параметров хранимых процедур. Какие бы элементы управ ления не использовались, в конце концов, Enterprise Manager применяет для управ ления связанными серверами те же хранимые процедуры, что были рассмотрены в предыдущих разделах.

Для управления связанными серверами Enterprise Manager предлагает использо вать папку Linked Servers (рис. 10.12), которую можно найти в папке Security, расположенной в корневой папке каждого сервера.

Рис. 10.12. Папка Linked Servers Каждый из сконфигурированных связанных серверов представлен в папке Linked Servers отдельным объектом. Однако в ней не отображаются серверы, 300 Часть III. Администрирование установленные на том же компьютере, что и рассматриваемый SQL Server 2000.

То есть в папке не будут отображены ни инсталляция по умолчанию, ни имено ванные инсталляции, хотя в таблице sysservers и будут присутствовать соот ветствующие записи.

( Замечание ^ Хотя в Enterprise Manager и не отображаются локальные инсталляции, тем не ме нее, можно зарегистрировать их в качестве связанного сервера еще раз под другим именем. Такой связанный сервер станет виден в панели Enterprise Manager.

В следующих разделах будет рассмотрено выполнение с помощью Enterprise Manager основных операций администрирования.

Регистрация связанного сервера Для регистрации нового связанного сервера с помощью Enterprise Manager пред назначено окно Linked Server Properties - New Linked Server (рис. 10.13). Для его открытия необходимо выбрать папку Linked Servers и в ее контекстном меню или в раскрывающейся кнопке Action выбрать команду New Linked Server.

Окно содержит три вкладки, с помощью которых можно определить источник данных, связанный с конфигурируемым связанным сервером, а также задать отображения учетных записей и управлять параметрами работы связанного сер вера. В этом разделе будет рассмотрена только первая вкладка General (см. рис. 10.13), с помощью которой выполняется настройка источника данных Вкладка имеет ряд элементов управления, с помощью которых и определяется источник данных для связанного сервера. Не трудно заметить, что имеющиеся на вкладке элементы управления отображают те же параметры, что указываются при регистрации связанного сервера при вызове хранимой процедуры sp addlinkedserver.

Рассмотрим элементы управления, имеющиеся на вкладке.

П Linked server. В этом текстовом поле указывается имя, которое будет при своено конфигурируемому связанному серверу. При выборе имени необхо димо следовать общим правилам именования объектов SQL Server 2000.

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

• SQL Server. При установке переключателя Server type в это положение будет считаться, что конфигурируемый связанный сервер является SQL Server 2000.

При этом имя, указанное в поле Linked server, должно являться именем соот ветствующего SQL Server 2000. Для инсталляции по умолчанию достаточно задать сетевое имя NetBIOS компьютера, на котором установлен SQL Server 2000. При регистрации именованной инсталляции помимо имени ком пьютера дополнительно должно быть указано имя инсталляции в формате Глава 10. Административные задачи имя_сервера\имя_инсталляцми. Установка переключателя в это положение равнозначна указанию значения 'SQL s e r v e r ' для параметра @srvproduct при регистрации связанного сервера с помощью хранимой процедуры sp_addiinkedserver. В этом случае не требуется задания никаких других па раметров.

П Other data source. В общем случае установка переключателя Server type в это положение необходима, когда конфигурируется источник данных, отличный от SQL Server. Однако таким образом также можно конфигурировать и сер веры SQL Server 2000. Это необходимо, когда предполагается зарегистриро вать связанный сервер с именем, отличным от сетевого имени соответст вующего SQL Server 2000. При установке переключателя в положение Other data source становятся доступными дополнительные элементы управления, которые рассматриваются ниже.

• Provider name. Этот раскрывающийся список содержит перечень всех по ставщиков OLE DB, установленных на текущем сервере. В зависимости от того, какой поставщик выбран, будет изменяться список доступных элемен тов управления, расположенных ниже. Мы не будем приводить список по ставщиков, устанавливающихся вместе с SQL Server 2000, т. к. он указан в табл. 10.1.

П Product name. В этом поле указывается имя продукта, который используется для управления конфигурируемым источником данных. Например, для mdb файлов это может быть MS Access. Указанное значение используется в качестве параметра Ssrvproduct при вызове хранимой процедуры sp_addlinkedserver.

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

• Data source. В этом поле указывается источник данных. Для получения более подробной информации о данном элементе следует обратиться к описанию па раметра Sdatasrc хранимой процедуры sp_addlinkedserver, предложенному в подразд. "Регистрация связанного сервера"разд. "Использование Transact-SQL"ра нее в этой главе. Значение, указанное в рассматриваемом поле, подставляется как параметр Odatasrc Конкретный смысл значения, указываемого в поле Data source, зависит от типа используемого поставщика OLE DB. Например, если применяется поставщик Microsoft OLE DB Provider for SQL Server, то в этом поле необходимо указать сетевое имя соответствующего SQL Server. Когда же используется поставщик Microsoft Jet 4.0 OLE DB Provider, то необходимо указать полный путь до соответствующего файла с данными.

( Замечание ^) Краткое назначение элемента управления и пояснение того, какие конкретно данные необходимо ввести с учетом выбранного поставщика, указывается в текстовом по Часть III. Администрирование ле, расположенном в нижней части вкладки. Это касается всех элементов управле ния, имеющихся на вкладке.

• Provider string. Поле предназначено для ввода строки, которая будет участво вать при инициализации источника данных, к которому обращается конфи гурируемый связанный сервер. В большинстве случаев это поле остается пус тым. Для получения дополнительной информации о использовании этой строки следует обратиться к подразд. "Регистрация связанного сервера" разд. "Использование Transact-SQL".

П Location. Это поле предназначено для ввода более точного местоположения источника данных. Оно используется только для поставщиков, для которых указания значения в поле Data source недостаточно.

• Catalog. Определяется каталог источника данных, с которым предполагается работать. Конкретное значение понятия каталог зависит от типа используе мого поставщика. Например, при указании поставщика для SQL Server под каталогом понимается база данных.

Рис. 10.13. Окно Linked Server Properties - New Linked Server На этом конфигурирование основных параметров связанного сервера заверша ется. После ввода всех значений остается только нажать кнопку ОК, что приве дет к выполнению системной хранимой процедуры spaddiinkedserver со зна чениями параметров, указанными с помощью элементов управления вкладки General.

Глава 10. Административные задачи Конфигурирование поставщика При рассмотрении вкладки General окна Linked Server Properties - New Linked Server (см. рис. 10.13) мы не рассмотрели назначение кнопки Provider Options. С помощью этой кнопки можно открыть окно Provider Options (рис. 10.14), пред назначенное для управления некоторыми свойствами работы поставщика. Пре жде чем модифицировать настройки поставщика, необходимо выбрать его в раскрывающемся списке Provider name.

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

Рис. 10.14. Окно Provider Options выбранного поставщика услуг с Замечание Свойства поставщика, определяемые в окне Provider Options, распространяются на работу поставщика в целом, а не только в пределах конфигурируемого связанного сервера. Для каждого поставщика хранится отдельный набор свойств.

Окно Provider Options разделено на две части. В нижней части имеется поле Linked servers using for this provider, в котором выводится список всех связанных серверов, использующих конфигурируемого поставщика. При модификации 1 1 Змс Часть III. Администрирование свойств поставщика следует учитывать, что изменения отразятся на всех связан ных серверах, использующих этого же поставщика, т. е. приведенных в поле Linked servers using for this provider.

В верхней части окна существует таблица Provider options, состоящая из двух столбцов, первый из которых (Enable) отражает текущее состояние параметра — установлен (имеется галочка) или сброшен (пустой флажок). Собственно имя параметра выводится во втором столбце (Name). Каждая из строк таблицы соот ветствует отдельному параметру поставщика.

Пользователь может управлять следующими настройками:

• Dynamic parameters. Установка этого параметра указывает, что поставщик под держивает использование символа ? для параметризованных запросов. Отме ченный параметр Dynamic parameters для SQL Server 2000 позволяет выполнять параметризованные запросы с помощью поставщика, что может повысить производительность. В общем случае для выполнения параметризованных за просов поставщик должен поддерживать интерфейс IcommandWithParameters.

• Nested queries. Установка этого параметра свидетельствует о том, что постав щик поддерживает выполнение вложенных запросов. То есть в качестве ис точника данных в разделе FROM при выборке данных может указываться не только имя таблицы или представления, но и запрос SELECT.

• Level zero only. Если параметр установлен, то для взаимодействия с постав щиком будет использоваться интерфейс OLE DB нулевого уровня.

П Allow InProcess. Установка параметра предписывает выполнять процессы по ставщика как часть SQL Server 2000. Это позволяет поставщику выполнять Обновление (UPDATE, INSERT) данных большого объема (text, ntext И image).

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

• Non transacted updates. Установка данного параметра разрешает поставщику выполнять изменения, даже если источник не поддерживает транзакций. С момента установки параметра откат транзакций не поддерживается.

• Index as access path. При установке параметра SQL Server 2000 будет приме нять для выборки данных индексы поставщика.

О Disallow adhoc accesses. Установка этого параметра запрещает обращение че рез поставщика к данным с использованием команд OPENROWSET () и OPENDATASOURCE (). В таком случае для обращения к данным необходимо ис пользовать связанные и удаленные серверы.

На этом рассмотрение конфигурирования параметров поставщика заканчивается.

Управление отображениями Для управления отображениями средствами Enterprise Manager служит вкладка Security (рис. 10.15) окна свойств связанного сервера Linked Server Properties.

Конфигурирование отображений можно выполнить как сразу же при регистра ции связанного сервера, так и позже. Окно свойств связанного сервера можно открыть, выбрав в контекстном меню сервера команду Properties.

Глава 10. Административные задачи Р И С. 10.15. Вкладка Security окна свойств связанного сервера В верхней части вкладки находится таблица, в которой и определяются отобра жения. В столбце Local Login указывается имя учетной записи локального сер вера, которая будет отображаться в учетную запись на связанном сервере. Имя учетной записи на связанном сервере, под которым будет регистрироваться по ставщик при выполнении запросов указанного локального пользователя, приво дится в столбце Remote User. В столбце Remote Password содержится пароль для данной учетной записи.

Установка флажка в столбце Impersonate приведет к тому, что регистрация со единения на связанном сервере будет использовать то же имя и пароль, что и учетная запись. То есть на локальном и удаленном сервере должны иметься учетные записи с одинаковыми именами и паролями.

В нижней части вкладки размешается переключатель For a login not defined in the list above, connections will, определяющий, как будет устанавливаться соединение со связанным сервером для пользователей, для которых не было явно сконфи гурировано отображение:

П Not be made — пользователи, не имеющие отображения, не смогут обращать ся к связанному серверу.

• Be made without using a security context — для установления соединения не используется конкретная учетная запись. Предполагается, что связанный сервер разрешает установление соединения не аутентифицированным поль зователям, например, под гостевой учетной записью.

Часть III. Администрирование П Be made using the login's current security context — для установления соедине ния со связанным сервером будут выбраны имя и пароль, которые использо вал пользователь для регистрации на локальном сервере.

• Be made using the security context — в этом случае все пользователи, для ко торых не определено отображение, начнут соединяться со связанным серве ром с помощью одной и той же учетной записи. При установке переключа теля в это положение становятся доступными два дополнительных элемента управления:

• поле Remote login, в котором указывается имя учетной записи связанного сервера, используемой для установления соединения;

поле With password задает пароль учетной записи, указанной в поле • Remote login.

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

Управление параметрами связанного сервера При использовании средств Transact-SQL управление параметрами связанного сер вера осуществляется с помощью системной хранимой процедуры spserveroption.

Рис. 10.16. Вкладка Server Options окна свойств связанного сервера Глава 10. Административные задачи При работе с Enterprise Manager для этих же целей предназначена вкладка Server Options (рис. 10.16) окна свойств связанного сервера Linked Server Properties.

Вкладка Server Options содержит всего одну таблицу, с помощью которой и осуществляется управление параметрами работы связанного сервера. Таблица имеет два столбца:

• Option Name, где выводится имя параметра сервера.

О Value, содержащий только флажки. Установленный флажок соответствует установленной опции и наоборот.

Список и назначение параметров настройки сервера были рассмотрены в под разд. "Конфигурирование связанного сервера" разд. "Использование Transact-SQL" ранее в этой главе.

Удаленные серверы Предыдущие разделы были посвящены рассмотрению связанных серверов. На помним, что связанные серверы позволяют пользователям выполнять удаленные и распределенные запросы к данным, расположенным в распределенных гете рогенных источниках данных. Технология связанных серверов является доволь но мощной. До SQL Server 7.0 в распоряжении пользователей, желающих обра титься к удаленным источникам данных, была только возможность работать с удаленными серверами (remote servers).

Удаленные серверы дают возможность пользователям локального компьютера выполнять хранимые процедуры, расположенные на удаленном сервере, без ус тановления дополнительного соединения. То есть клиенту достаточно иметь лицензию на одно подключение. Тем не менее, при этом необходимо иметь права на выполнение хранимых процедур, размещенных на удаленных серверах.

Однако при этом пользователи не смогут выполнять удаленные и распределен ные запросы, обращающиеся к удаленному серверу. Более того, в качестве уда ленного сервера для локального SQL Server 2000 может выступать только другой SQL Server.

Очевидно, что технология удаленного сервера проигрывает по функционально сти технологии связанного сервера. Действительно, связанные серверы помимо возможности выполнения удаленных хранимых процедур позволяют выполнять пользователям сложные распределенные запросы, обращающиеся к множеству распределенных гетерогенных источников данных. Причем в качестве такого источника данных может выступать не только СУБД, но и обычный текстовый файл, файл базы данных MS Access, dbf-файл и т. д.

С Замечание ^ В SQL Server 2000 технология удаленных серверов оставлена для обеспечения со вместимости с предыдущими версиями SQL Server. Начиная с SQL Server 7.0, поль зователи могут работать с более мощной технологией связанных серверов.

308 Часть III, Администрирование На уровне ядра SQL Server 2000 удаленные серверы реализованы как подмноже ство связанных серверов, обладающее ограниченными возможностями. То есть для выполнения удаленных хранимых процедур с помощью технологии удален ных серверов используются те же механизмы, что и при выполнении удаленных хранимых процедур с помощью технологии связанных серверов. Если нет осо бых причин, то рекомендуется применять связанные серверы, а не удаленные. В будущем это позволит легко обеспечить возможность выполнения удаленных и распределенных запросов.

Как и для связанных серверов, информация об удаленных хранится в системной таблице sysservers системной базы данных Master. Как уже было сказано, с точки зрения сервера удаленный сервер является ничем иным, как связанным сервером с ограниченными возможностями. В принципе, можно изменить па раметры связанного сервера SQL Server 2000 таким образом, что он будет иметь те же возможности, что и удаленный сервер.

В отличие от связанных серверов, при работе с удаленными серверами их регист рация выполняется парами. То есть, чтобы пользователи сервера servA могли вы полнять хранимые процедуры на сервере serve, необходимо на ServA сконфигу рировать ServB в качестве удаленного сервера, и, наоборот, на servB определить ServA в качестве удаленного сервера. Таким образом, пользователи сервера servn также получат возможность выполнять хранимые процедуры на сервера servA.

Замечание Как и при работе со связанными серверами, использование удаленных серверов требует конфигурирования отображения учетных записей пользователей локального сервера в учетные записи удаленного сервера. Эта операция будет рассмотрена в одном из следующих разделов. Тем не менее, по умолчанию для учетных записей будет применяться отображение в себя (self mapping). Поведение системы безо пасности при использовании отображения в себя рассматривалось при описании связанных серверов.

В следующих разделах обсудим управление удаленными серверами.

Использование Transact-SQL Работа с удаленными серверами, как и многие другие задачи администрирова ния, могут быть выполнены разными способами. В подразделах данного раздела будет рассмотрена работа с удаленными серверами средствами хранимых проце дур и команд Transact-SQL.

Регистрация удаленного сервера Регистрация удаленного сервера средствами Transact-SQL выполняется с помощью системной хранимой процедуры spaddserver, имеющей следующий синтаксис:

sp_addserver [Sserver =] 'server' [, [Slocal =] 'local'] [, [@duplicate_ok =] 'duplicate_OK'] Глава 10. Административные задачи Замечание Правом выполнения хранимой процедуры sp_addserver обладают члены фикси рованных ролей сервера sysadmin и Setupadmin.

( Замечание J Хранимая процедура sp_addserver оставлена для обеспечения совместимости с предыдущими версиями SQL Server. В принципе сервер, зарегистрированный как связанный, может использоваться и как удаленный. Регистрация связанного серве ра выполняется с помощью системной хранимой процедуры sp_addlinkectserver, которая была описана в одном из предыдущих разделов данной главы.

Рассмотрим назначение и использование каждого из параметров хранимой про цедуры.

О [gserver =] 'server' С помощью данного параметра указывается имя сервера. Это сетевое имя NetBIOS компьютера, на котором установлен SQL Server 2000. Если выполня ется регистрация именованной инсталляции, то дополнительно должно быть указано имя инсталляции в формате имя серзера\имя_инсталляции. Для не именованной инсталляции достаточно указать только имя компьютера.

П [@1оса1 =] 'local' Если выполняется регистрация SQL Server 2000, установленного на локальном компьютере, то, указав этот параметр, можно зарегистрировать имя, опреде ленное с помощью предыдущего параметра, в качестве имени локального сер вера. Данное имя можно просмотреть с помощью переменной @@SERVERNAME.

( Замечаниеi ч Изменение имени локального SQL Server 2000 будет отображено только после сле дующего запуска сервера. До останова будет использоваться то имя, которое имел SQL Server 2000 при запуске.

[@duplicate_ok =] 'duplicate_OK'] Это последний параметр хранимой процедуры sp_addserver. Указав его, можно избежать вывода сообщения об ошибке при попытке регистрации удаленного сервера с именем, уже имеющимся в таблице sysservers. Проце дура просто завершает свою работу в случае обнаружения ранее добавлен ного связанного или удаленного сервера в таблице sysservers. Никаких дей ствий по изменению имеющихся данных не предпринимается. Если параметр @dupiicate_ok не указывается, или имеет иное значение чем 'duplicatejDK 1, то при обнаружении совпадения имен процедура вернет код завершения 1 и будет выдано следующее сообщение об ошибке:

Server: Msg 15028, Level 16, State 1, Line The server '@server' already exists.

310 Часть III. Администрирование Как уже говорилось, информация обо всех зарегистрированных серверах, в том числе и локальном, хранится в системной таблице sysservers. Каждый из сер веров имеет уникальный в пределах сервера идентификационный номер (столбец srvid). Локальный сервер всегда имеет идентификационный номер 0.

Когда хранимая процедура s p a d d s e r v e r вызывается с параметром giocal, рав ным 'LOCAL 1, то процедура ищет в таблице s y s s e r v e r s сервер с идентификаци онным номером 0. Если такой сервер существует, то выдается сообщение об ошибке. Никаких действий по удалению имеющейся записи локального сервера не выполняется. Если же сервер с номером 0 не найден, то указанное с помо щью параметра @server имя регистрируется в качестве имени локального SQL Server 2000. Таким образом, чтобы изменить имя локального сервера, необходи мо сначала удалить имеющуюся запись. Более простым способом изменения имени локального SQL Server 2000 будет прямое обращение к системной табли це sysservers с помощью запроса:

USE master UPDATE s y s s e r v e r s SET srvname = 'NewServerName' W E E s r v i d = HR Изменение имени локального SQL Server 2000 не отображается на имени ин сталляции. То есть изменение имени никаким образом не отобразится на том, как пользователи устанавливают соединение с сервером. Также это не отобра зится на настройках связанных и удаленных серверов, сконфигурированных на других серверах сети.

Изменение имени локального SQL Server 2000 отображается лишь на запросах, выполняемых локально. Если в именах объектов указывается имя сервера, то необходимо соответствующим образом скорректировать эту часть имени объек та. Например, если ранее SQL Server 2000 имел имя STORAGE\Trelon, пользова тели могли выполнять следующий запрос на этом же сервере:

SELECT * FROM [STORAGE\Trelon].pubs..authors Администратор изменяет имя сервера на STORAGE\Train с помощью команды:

UPDATE m a s t e r.. s y s s e r v e r s SET srvname = ' S t o r a g e \ T r a i n ' W E E s r v i d = HR В дальнейшем для обращения пользователи должны будут указывать новое имя сервера:

SELECT * FROM [STORAGE\Train].pubs..authors На первый взгляд непонятно, зачем может понадобиться изменение имени сер вера. Однако это бывает нужно при переносе с другого сервера баз данных, ис пользующих при обращении к объектам имя сервера. Конечно, можно указать корректное имя при установке SQL Server 2000, но иногда это невозможно из-за необходимости работы как с новым, так и имеющимся сервером. Нахождение в сети двух серверов с одинаковыми именами не допускается.

Кроме того, поддержка изменения имени локального сервера открывает некото рые возможности перед разработчиками. Например, при разработке хранимых процедур можно умышленно использовать в именах объектов имя сервера. Из меняя значения в таблице sysservers, возможно заставить сервер обращаться к Глава 10. Административные задачи объектам, расположенным на любом из серверов сети, в том числе и локальном.

Таким образом, нетрудно создать распределенные базы данных. Сконфигуриро вав несколько связанных или удаленных серверов, можно использовать их име на в хранимых процедурах для обращения к объектам. Если в будущем понадо бится перенести объекты одного из SQL Server 2000 на другой сервер, то достаточно будет изменить данные в таблице sysservers и не вносить никаких изменений в хранимые процедуры. Более того, можно будет перенести все объ екты на один сервер и изменить свойства связанных или удаленных серверов таким образом, чтобы все они ссылались на этот сервер, который является так же и локальным.

Мы рассмотрели все параметры хранимой процедуры sp_addserver, предназна ченной для добавления удаленного сервера. В качестве примера приведем реги страцию удаленного сервера JL:

EXEC sp_addserver '.JL, NULL, 'duplicate_ok' Определение отображения на локальном сервере Как и при конфигурировании связанных серверов, использование удаленных серверов требует определения отображения локальных учетных записей в учен ные записи удаленного компьютера. Это связано с тем, что видимость учетных записей пользователей ограничивается локальным SQL Server 2000. Для доступа к удаленному SQL Server 2000 необходимо работать с учетной записью, опреде ленной на этом удаленном сервере.

Однако технология использования отображений для удаленных серверов отли чается от применения отображений связанных серверов. При работе со связан ными серверами поставщик OLE DB использует имя учетной записи и пароль, определенные для локального пользователя, для установления соединения с со ответствующим связанным сервером. При этом поставщик OLE DB рассматри вается как обычный клиент, выполняющий запрос.

При работе с удаленными серверами достаточно указать лишь имя учетной за писи, в которую будет отображена локальная учетная запись пользователя. Ввод пароля не требуется. Однако администратор удаленного сервера должен со сво ей стороны разрешить выполнение подобного отображения, явно указав, в ка кую учетную запись должно выполняться отображение. То есть при использова нии удаленных серверов необходимо выполнять конфигурирование как локального, так и удаленного сервера.

( Замечание ^ При использовании связанных серверов достаточно сконфигурировать только ло кальный сервер.

На первый взгляд подобный подход обеспечивает более высокую безопасность, т. к. пароль не передается по сети. Однако при ближайшем рассмотрении мож 312 Часть III. Администрирование но заметить, что удаленный сервер выполняет проверку сервера, устанавливаю щего соединение, только по его имени. То есть злоумышленник может попы таться установить в сети SQL Server 2000 с именем, для которого имеется ото бражение на удаленном сервере.

Информация об отображении локальных учетных записей в учетные записи удаленного сервера, как и при работе со связанными серверами, хранится в сис темной таблице sysxlogins системной базы данных Master. Также как и при работе со связанными серверами, для определения отображения локальных учетных записей в учетные записи удаленного сервера используется системная хранимая процедура sp_addiinkedsrviogin, работа с которой была рассмотрена в разд. "Определение отображения"ранее в этой главе.

Необходимо отметить, что если удаленный сервер ранее уже был сконфигуриро ван в качестве связанного, и были определены отображения, то они могут быть использованы. При этом применяется как имя, так и пароль учетной записи.

Замечание Технология удаленных серверов в SQL Server 2000 устроена таким образом, что ис пользование учетных записей Windows NT не поддерживается, т. е. нельзя запус кать хранимую процедуру s p _ a d a l i n k e d s r v l o g i n с параметром guseself, рав ным TRUE. Хотя процедура будет выполнена успешно, при попытке установления соединения появится сообщение о невозможности установления соединения.

Определение отображения на удаленном сервере Как уже говорилось, при работе с удаленными серверами недостаточно конфи гурирования отображения локальных учетных записей в учетные записи удален ного сервера. Необходимо выполнить конфигурирование прав доступа и на уда ленном сервере. Администратор удаленного сервера должен указать, с какого локальный сервера допускается выполнение процедур. Также может быть опре делено, какая учетная запись локального сервера в какую учетную запись уда ленного сервера должна быть отображена.

( Замечание ^ Далее в тексте сообщается, что необходимо выполнить некоторые действия на уда ленном сервере. Однако при описании действий, выполняемых на этом сервере, мы будем говорить о нем как об удаленном сервере, а не как о локальном, что можно было бы ожидать. Соответственно, независимо от того, о каком сервере идет речь, мы будем называть локальным тот сервер, который выступает в качестве клиента, т. е. отправляет запрос на выполнение хранимой процедуры.

До тех пор, пока на удаленном сервере не будет соответствующим образом оп ределено отображения учетных записей, при попытке выполнить на локальном компьютере удаленную хранимую процедуру пользователи будут получать при мерно следующие сообщения об ошибке:

Server: Msg 11, Level 16, State 1, Line General network e r r o r. Check your network documentation.

Глава 10. Административные задачи Server: Msg 7221, Level 18, State 2, Line Could not relay results of procedure 'ProcName' from remote server 'Server Name'.

Для управления подобным отображением необходимо использовать следующую хранимую процедуру:

sp_addremotelogin [Sremoteserver =] 'remoteserver' [, i@loginame =] 'login'] [, [Sremotename =J 'remote_name'] Замечание Правами вызова данной хранимой процедуры обладают члены фиксированных ро лей сервера sysadmin и Securityadmin.

Рассмотрим назначение и использование параметров хранимой процедуры.

О [Sremoteserver =] 'remoteserver' Параметр задает имя удаленного сервера, для которого необходимо опреде лить отображение. Это имя должно иметься в системной таблице sysserv ers. Если указывается только данный параметр, то все учетные записи ло кальных пользователей будут отображаться в одноименные учетные записи удаленного компьютера.

П [@loginame =] 'login'] Имя локальной учетной записи, в которую будет выполняться отображение.

Указываемая учетная запись должна уже быть создана, и в таблице sysxiogins должна иметься соответствующая строка. Если указывается па раметр sioginame, но не указывается параметр Sremotename, то все учетные записи локального компьютера будут отображаться в одну и ту же учетную запись удаленного компьютера.

О [Sremotename =] 'remote_name'] Параметр определяет имя учетной записи локального компьютера, для кото рой определяется отображение.

Ниже приведен пример, с помощью которого выполняется отображение учетной записи Casper локального компьютера в учетную запись sa удаленного компьютера.

EXEC spaddremotelogin 'STORAGE', 'Casper', •sa' После того, как будет осуществлено конфигурирование удаленного сервера, пользователи локального сервера смогут выполнять вызовы удаленных храни мых процедур.

При внимательном рассмотрении процесса конфигурирования отображений для удаленных серверов можно заметить одну особенность. Ни удаленный, ни ло кальный сервер не выполняют проверок на достоверность указываемых внеш них учетных записей. Это позволяет использовать произвольные имена, в том 314 Часть III. Администрирование числе и не определенные в таблицах sysxiogins удаленного и локального сер веров.

При конфигурировании отображения со стороны удаленного сервера с помо щью параметра @rmtuser указывается имя учетной записи удаленного сервера.

Хотя и говорится, что указываемое имя должно присутствовать на удаленном сервере, эта проверка не выполняется. При обращении к удаленному серверу локальный сервер будет использовать указанное имя, передавая его удаленному серверу.

При конфигурировании отображения со стороны удаленного сервера с помо щью хранимой процедуры s p a d d r e m o t e i o g i n с помощью параметра Sremotename указывается имя учетной записи локального компьютера. Опять же, никаких проверок на достоверность указанных данных не выполняется.

Единственным требованием для успешного установления соединения является соответствие значений, указанных с помощью параметров @rmtuser и Sremotename, а также соответствие пароля, определенного с помощью параметра Srmtpassword процедуры sp_addlinkedsrvlogin, паролю учетной записи (указанной с помощью параметра sioginame процедуры sp addremotelogin) удаленного сервера.

( Замечание ^ По умолчанию удаленный сервер выполняет проверку соответствия паролей, однако и этой проверки можно избежать, если изменить параметры отображения на уда ленном сервере. Модификация этих параметров будет рассмотрена в оном из сле дующих разделов.

Таким образом, можно обойти ограничение на использование учетных записей Windows NT. Указав при определении отображения с помощью хранимой про цедуры sp_addiinkedsrvlogin для параметра @useseif значение FALSE, можно явно задать имя, которое будет участвовать в установлении соединения с уда ленным сервером. Можно ввести произвольное значение. Единственно, при конфигурировании отображения на удаленном сервере нужно указать то же са мое имя.

( Замечание^ ^) Вышеописанная технология имеет свои минусы. Если удаленный сервер сконфигу рирован также и в качестве связанного, то подобные изощрения с большой вероят ностью приведут к невозможности выполнения распределенных и удаленных запро сов с использованием технологии связанного сервера. Проблема в том, что для каждой учетной записи локального сервера допускается конфигурирование единст венного отображения к каждому из серверов. При этом связанный и удаленный-сер веры не разделяются. Тем не менее, к данным можно обратиться с помощью сис темной хранимой процедуры s p s q i e x e c, выполнив с ее помощью нужный запрос на удаленном сервере.

В качестве пояснения к сказанному выше приведем пример конфигурирования отображения. Сначала определим отображение на локальном компьютере:

Глава 10. Административные задачи sp_addlinkedsrvlogin ' STORAGEXTrelon', 'false', 'STORAGE\Administrator', 'RandomName', Замечание В рассматриваемом примере предполагается, что учетная запись sa удаленного сервера имеет пустой пароль.

Теперь же необходимо настроить отображение на удаленном сервере:

sp_addremotelogin 'STORAGE', ' sa', RandomName' На этом рассмотрение определения отображений заканчивается.

Просмотр отображений Для просмотра информации об учетных записях локального сервера, сконфигу рированных для обращения к удаленному серверу, как и при работе со связан ными серверами, служит системная хранимая процедура sp_helplinkedsrvlogin, которая была рассмотрена в подразд. "Просмотр ото бражений" разд. "Связанные сервера" ранее в этой главе, поэтому мы не будем лишний раз останавливаться на этом.

Основное же внимание в данном разделе будет уделено рассмотрению систем ной хранимой процедуры sp_heiprenrotelogin, предназначенной для просмотра списка учетных записей, которые могут обращаться к текущему серверу как к удаленному. Синтаксис этой хранимой процедуры таков:


sp_helpremotelogin [[Sremoteserver =] 'remoteserver'] [, [gremotename =] 'remote_name'] При вызове процедуры без параметров будет выведена информация обо всех сконфигурированных отображениях. Если необходимо получить информацию об отображениях учетных записей с конкретного сервера, то нужно с помощью параметра @remoteserver указать имя интересующего сервера.

Когда же требуется получить информацию обо всех отображениях конкретной учетной записи, сделанных для любого из серверов, необходимо указать имя интересующей учетной записи с помощью параметра Sremotename.

Результатом выполнения процедуры sp_heipremoteiogin будет набор строк, каждая из которых соответствует отдельному отображению. Информация выво дится в колонках:

О server — имя сервера, который может обращаться к текущему как к удален ному;

• locai_user_name — имя локальной учетной записи, в которую выполняется отображение;

Часть III. Администрирование • remote_user_name — имя учетной записи внешнего сервера, которая отобра жается в локальную учетную запись, указанную в предыдущем столбце;

• options — целое число, отображающее установленные опции.

Приведенная ниже команда выводит список всех учетных записей, имеющих доступ к текущему серверу как к удаленному.

EXEC sp_helpremot.elogin Будет выведен примерно следующий результат:

server ю с а ! user name remote user name options Administrator sa STORAGE sa RandomName STORAGE STOPAGE\Administrator sa STORAGE JL Casper RandomName RandomName Casper DM Если же укажем при вызове хранимой процедуры для параметра @remoteserve, значение 'STORAGE', то будет получен такой результат:

server local user name remote user name options Admi n i s t r at о г STORAGE sa STORAGE за RandomName STORAGE sa STORAGE\Admin i s trat о г Продемонстрируем также использование параметра @remotename:

EXEC sp_helpremotelogin NULL, 'RandomName Будет выведен примерно следующий результат:

server local_user_name remote_user_name options STORAGE RandomName sa JL RandomName Casper DM RandomName Casoer Для получения информации хранимая процедура sp_neipremoteiogin обраща ется к представлению sysremotelogins, которое строится на основе системной таблицы sysxiogins. Для получения информации об отображениях также мож но использовать непосредственно представление sysremotelogins или таблицу sysxiogins. Однако подобный способ требует определенной квалификации и некоторых затрат на написание запроса. Однако данный метод незаменим, если нужно получить сведения помимо тех, которые предоставляет хранимая проце дура sp_helpremotelogin.

Представление sysremotelogins имеет следующую структуру:

О remoteserverid — этот столбец содержит идентификационный номер свя занного сервера, к которому относится отображение. Идентификационный номер должен соответствовать идентификационному номеру связанного сер вера, указанного в столбце srvid таблицы sysservers;

Глава 10. Административные задачи • remoteusername — имя учетной записи удаленного сервера, в которую будет отображаться локальная учетная запись;

• s t a t u s — в этом столбце находится информации о статусе отображения.

Столбец имеет тип данных small i n t. Каждый из битов числа, хранимого в столбце, соответствует одной из опций. Установленный бит соответствует ус тановленной опции;

• sid — идентификатор безопасности учетной (SID) записи локального серве ра, которая отображается в учетную запись удаленного сервера, указанную в столбце remoteusername. Значение SID для пользователя можно получить с ПОМОЩЬЮ фуНКЦИИ SUSER_SID ( ' LoginName ' ) ;

• changedate — дата последнего изменения соответствующего отображения.

При создании и последующих изменениях отображения в этом столбце ука зывается время, в которое была запущена соответствующая хранимая проце дура. Если изменения выполняются непосредственно, то значение в этом столбце автоматически не меняется.

Свойства отображения Для отображений, конфигурируемых на локальном сервере, не имеется никаких свойств. Однако при настройке отображений со стороны удаленного сервера пользователь может изменить некоторые параметры- Для этого служит систем ная хранимая процедура sp_remoteoption, имеющая синтаксис:

sp_remoteoption [[Sremoteserver =] 'remoteserver' [, [@loginame =] 'loginame'] [, [@remotename =] 'remotename'] [, t@optname =] 'optname'] [, [goptvalue =1 'optvalue'i (Замечание ~) ~ Правом выполнения данной процедуры обладают члены фиксированных ролей сер вера sysadmin и Securityadmin.

Рассмотрим назначение и использование параметров хранимой процедуры.

U [@remoteserver =] 'remoteserver Имя сервера, для которого требуется изменить параметры отображения. Ука зывается имя сервера, который будет обращаться к текущему серверу как к удаленному. Этот сервер уже должен быть определен на текущем сервере, т. е. его имя должно иметься в столбце srvname таблицы sysservers.

'loginame О [Ologiname =] Имя учетной записи локального сервера, в которую отображается учетная за пись сервера с именем, заданным с помощью предыдущего параметра. Имя удаленной учетной записи определяется с помощью следующего параметра.

Указываемая с помощью параметра eioginame учетная запись должна быть создана на текущем сервере.

318 Часть III. Администрирование • [gremotename =] 'remotename' Имя учетной записи, которая отображается в локальную учетную запись.

Отображение должно быть определено заранее с помощью хранимой проце дуры spaddremotelogin, описанной выше в одном из предыдущих разделов данной главы.

О [goptname =] 'optname' Параметр определяет имя опции, значение которой предполагается изме нить. В настоящее время количество опций невелико и, возможно, в буду щем увеличится. Сейчас же пользователи могут управлять лишь одной опци ей — ' t r u s t e d '. Она определяет поведение сервера при попытке установления с ним соединения с помощью технологии удаленных серверов.

Если опция ' t r u s t e d ' задана (@optvaiue='TRUE'), то устанавливается дове рительное соединение. Это означает, что удаленный сервер не будет выпол нять проверки соответствия пароля, указанного при конфигурировании ото бражения на локальном компьютере, паролю, установленному на удаленном сервере для учетной записи, в которую выполняется отображение. При сброшенной опции (goptvalue='FALSE') удаленный сервер будет проверять соответствие паролей. При каждом изменении пароля учетной записи на удаленном сервере необходимо будет также изменять пароль, указанный при определении отображения на локальном сервере.

CJ [goptvalue =] 'optvalue' Этот параметр может принимать либо значение TRUE, ЧТО приведет к уста новке указанной опции, либо значение FALSE, ЧТО повлечет сброс опции.

В качестве примера рассмотрим вызов процедуры, который разрешает подклю чаться с сервера STORAGE учетной записи RandomName, которая отображается в локальную учетную запись sa, без необходимости указывать пароль:

sp_remoteoption 'STORAGE', 'sa', 'RandomName', goptname = 'trusted', goptvalue = 'TRUE' Удаление отображения Для удаления отображений на локальном сервере, как и при работе со связан ными серверами, существует хранимая процедура sp_droplinkedsrviogin. Опи сание ее параметров и работа с ней были даны в подразд. "Удаление отображе ний" разд. "Связанные серверы"ранее в этой главе.

Для удаления отображений на удаленном сервере используется хранимая проце дура spdropremoteiogin, имеющая синтаксис:

sp_dropremotelogin [@remoteserver =] 'remoteserver' [, [gloginame =] ' l o g i n ' ] [, [gremotename =] 'remote name'] Глава 10, Административные задачи Замечание Правом выполнения этой хранимой процедуры обладают члены фиксированных ро лей сервера sysadmin и Securityadmin.

Как видно, процедура имеет всего три параметра, и только первый из них явля ется обязательным. Если указывается лишь параметр @remoteserver, то будут удалены все отображения для сервера, имя которого и определено этим пара метром. Дополнительно с помощью параметра aioginame можно указать имя учетной записи текущего удаленного сервера, отображение в которую следует удалить. Список удаляемых отображений можно также сузить, указав с помо щью параметра @remotename имя учетной записи, которая отображается в ло кальную учетную запись.

В качестве примера рассмотрим удаление отображения для учетной записи Windows NT с именем Casper, определенного для связанного сервера STORAGE:

EXEC sp_dropremotelogin gremoteserver = 'STORAGE', Sremotename = 'Casper' На этом управление отображением локальных учетных записей в учетные запи си связанного сервера заканчивается.

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

В принципе, для прекращения связи серверов достаточно удалить сведения с одной стороны — либо со стороны локального сервера, либо со стороны уда ленного. Для удаления информации со стороны как локального, так и удален ного сервера предназначена системная хранимая процедура sp dropserver. Ее использование было описано ранее в одном из разделов этой главы.

Замечание Следует быть осторожным при удалении информации об удаленном сервере. Как уже было сказано, SQL Server 2000 не делает различия между связанным и удален ным сервером. Поэтому, при удалении информации об удаленном сервере будет устранена информация и о связанном сервере.


Использование Enterprise Manager Как было сказано ранее, использование технологии удаленных серверов требует конфигурирования как со стороны локального сервера, так и со стороны уда Часть III. Администрирование ленного. Как мы уже говорили, между связанными и удаленными серверами существует лишь небольшое различие. Поэтому настройка со стороны локаль ного сервера выполняется точно так же, как и при работе со связанными серве рами. То есть для создания удаленного сервера необходимо использовать окно Linked Server Properties - New Linked Server. Описание создания связанного сер вера средствами Enterprise Manager было рассмотрено ранее в этой главе.

Для конфигурирования локального сервера в качестве удаленного для других серверов предназначена папка Remote Servers (рис. 10.17), которую можно найти в папке Security каждого сервера. Для разрешения использования локального сервера в качестве удаленного и для управления отображениями учетных запи сей используется окно Remote Server Properties (рис. 10.18), открыть которое можно с помощью команды New Remote Server из контекстного меню папки Remote Servers или при нажатии кнопки Action.

Рис. 10.17. Папка Remote Servers В поле Name указывается имя SQL Server 2000, пользователи которого смогут обращаться к локальному серверу как к удаленному. Для инсталляции по умол чанию достаточно указать сетевое имя NetBIOS компьютера, на котором уста новлен соответствующий SQL Server 2000. Для именованной инсталляции по мимо имени компьютера необходимо указать и имя инсталляции. Кроме того, Глава 10. Административные задачи для имени следует соблюдать уникальность. То есть ранее не должно быть за регистрировано сервера с тем же именем, что указано в поле Name. Более того, также не должно существовать связанного сервера с аналогичным именем.

Рис. 10.18. Окно Remote Seiver Properties Замечание Напомним, что в качестве удаленных серверов допускается использование только SQL Server. Для обращения к другим источникам данных необходимо использовать технологию связанных серверов.

Устанавливая флажок RPC, можно разрешить пользователям удаленного сервера выполнять хранимые процедуры локального сервера с помощью технологии удаленного вызова процедур (RPC, Remote Procedure Call).

В группе элементов Remote login mapping можно управлять отображением учет ных записей сервера, с которого осуществляется вызов хранимых процедур, в учетные записи текущего сервера. При установке переключателя в положение Map all remote logins to все учетные записи станут отображаться в одну и ту же учетную запись локального сервера (т. е. удаленного сервера, с точки зрения пользователя, осуществляющего вызов хранимой процедуры). Имя учетной за писи, в которую будет происходить отображение, выбирается в раскрывающем ся списке справа от переключателя. По умолчанию в этом списке выбрано зна чение Same Name. Это означает, что Каждый пользователь, обращающийся к удаленному серверу, будет проходить аутентификацию с использованием своего 322 Часть III. Администрирование имени и пароля. То есть для того, чтобы пользователь имел возможность вы звать хранимую процедуру на удаленном сервере, он должен иметь одноимен ные учетные записи как на локальном, так и на удаленном сервере. Также име ется возможность выполнять отображение всех учетных записей клиентов в одну и ту же учетную запись удаленного сервера. Для этого достаточно выбрать в списке имя нужной учетной записи.

По умолчанию проверка соответствия паролей учетных записей не выполняется.

То есть для установления соединения с конфигурируемым удаленным сервером достаточно использовать для аутентификации учетную запись, которая сущест вует на удаленном сервере.

При установке переключателя в положение Map remote logins to different local logins необходимо будет определить отображения для каждой учетной записи сервера, имя которого указано в поле Name. В столбце Remote Login Name ука зывается имя учетной записи, которая будет применяться на сервере-клиенте для вызова хранимых процедур с конфигурируемого удаленного сервера. Значе ния в этом столбце вводятся вручную.

В столбце Local Login Name указывается имя учетной записи локального серве ра, в которую будет выполняться отображение. Администратор должен выбрать в раскрывающемся списке имя одной из учетных записей, уже имеющихся на сервере.

Установка флажка в столбце Check Password приведет к тому, что при установ лении соединения будет выполняться проверка на соответствие паролей. Если флажок сброшен, то такая проверка не проводится, и для установления соеди нения будет достаточно определить отображение.

На этом конфигурирование удаленного сервера можно считать рассмотренным.

Глава Доступ к гетерогенным источникам данных При разработке хранилищ данных часто встает вопрос о необходимости перио дического копирования разнородных данных в единый формат. Унаследованные из прошлого системы, используемые на предприятиях для хранения данных, весьма разнообразны. Применение различных архитектур и технологий создает дополнительные трудности. Объединение данных из множества гетерогенных источников является непростой задачей даже для опытных администраторов.

Большинство информационных систем реализовывается в виде звезды. В центре располагается мощная система управления базами данных, накапливающая и обрабатывающая основную массу информации. В качестве периферийных кли ентских систем выступают настольные приложения, такие, как, например DB2, Paradox, MS Excel, dBase и т. д.

Служащие в начале месяца копируют с центрального хранилища информацию об имеющихся на складе товарах, их ценах и подготовленный аналитической службой список возможных покупателей. В конце месяца работники копируют данные о проданных товарах. Чем больше размеры системы и разнообразие ис пользуемых приложений, тем сложнее становится управлять циркулирующими на предприятии данными. Можно найти выход, перенеся всю информацию на единую платформу. Но часто это нецелесообразно или просто невозможно по тем или иным причинам. Повсеместная установка SQL Server 2000 и покупка дополнительных клиентских лицензий будет стоить немалую сумму, и поэтому не всегда возможна. К тому же, если учесть, что наверняка придется обновить большую часть компьютерного парка, то такая затея вряд ли вызовет поддержку начальства. Лучшим решением будет установка нескольких SQL Server, которые будут собирать, обрабатывать и тиражировать всю информацию, предоставляе мую уже внедренными и проверенными системами.

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

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

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

Экспорт и импорт данных Все операции обмена данными между SQL Server 2000 и другими системами можно разделить на импорт и экспорт. Чаще всего нужно организовать либо импорт, либо экспорт данных. Хотя в некоторых ситуациях бывает необходимо выполнить обе операции.

Импорт данных подразумевает копирование SQL Server 2000 информации, хра нящейся на различных внешних системах. В процессе выполнения импорта в таблицы баз данных SQL Server 2000 добавляется новая информация.

Целью экспорта данных является предоставление внешним системам информа ции, хранящейся на SQL Server 2000. При этом данные преобразуются в формат, понятный внешней системе. Например, если требуется передать данные в MS Excel, то результатом выполнения экспорта будет xls-файл.

( Замечание Когда мы будем говорить об операциях обмена данными, то станем также употреб лять термин "перенос данных". При этом не важно, что конкретно выполняется — импорт или экспорт.

Если SQL Server 2000 устанавливается с целью замены устаревшей системы хра нения информации, то начальной задачей после завершения установки и кон фигурирования системы будет перенос данных. Первое, что необходимо для этого сделать — это создание базы данных и таблиц, в которые будет осуществ ляться перенос данных. Для организации таблиц с нужной структурой можно использовать различные методы. Например, если внешняя система поддержива ет скриптование объектов, то это позволяет получить готовый код, с помощью которого можно автоматизировать процесс создания таблиц. Кроме того, неко торые инструменты переноса данных SQL Server 2000 позволяют образовывать структуры данных, в которые может быть сохранена импортируемая информа ция. После того, как все необходимые таблицы были созданы, можно перехо дить непосредственно к процессу импорта данных.

Операции импорта/экспорта могут выполняться лишь один раз или периодиче ски на долговременной основе. Одноразовый перенос данных обычно наблюда ется при переносе данных на SQL Server 2000 с других систем хранения данных.

Например, при выполнении обновления с SQL Server 6.x до SQL Server достаточно только один раз перенести информацию. Затем все операции обра ботки данных можно выполнять непосредственно в SQL Server 2000.

Периодический импорт данных используется в том случае, если на предприятии продолжается эксплуатация устаревших систем. Сотрудники отделов могут ис пользовать в своей работе различные продукты, но все данные стекаются в SQL Глава 11. Доступ к гетерогенным источникам данных Server 2000, где они анализируются, обрабатываются и хранятся. При этом необ ходимо выполнить преобразование данных из форматов используемых прило жений в формат SQL Server 2000. Такие операции можно выполнять вручную или автоматически. Система автоматизации управления сервером и данными была рассмотрена в главе 5.

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

В обычной практике применяют следующие методы переноса данных:

• Службы трансформации данных — Data Transformation Services (DTS). SQL Server 2000 предлагает несколько различных способов работы с механизмами DTS. Более подробно каждый из них будет рассмотрен в разд. "Использование Data Transformation Services"далее в этой главе.

• Программный интерфейс массивного копирования — Bulk Copy API. Для этого метода также поддерживается несколько способов работы, которые будут рассмотрены в разд. "Механизмы массивного копирования" далее в этой главе.

• Репликация данных. Данный метод является отдельной темой для разговора и будет рассмотрен в главе 14. Репликация является мощным инструментом обмена данными между серверами SQL Server. Все возможности подсистемы репликации могут быть использованы, если серверы-участники являются SQL Server 2000. Но также реализована поддержка серверов SQL Server 6.x и SQL Server 7.0.

П Распределенные запросы — Distributed Query. Метод позволяет в одном за просе объединять данные, расположенные на множестве различных источни ков. Как частный случай распределенных запросов можно рассматривать удаленные запросы (remote query).

О Команда SELECT INTO. Она позволяет создавать новую таблицу на основе дан ных, полученных в результате запроса. При этом также выполняется вставка всех полученных запросом данных в созданную таблицу. Совместно с исполь зованием распределенных запросов команда SELECT INTO предоставляет воз можность создать на локальном сервере копию данных, полученных в резуль тате слияния информации с множества удаленных источников данных.

• Команда INSERT. Указанная команда является стандартным средством добав ления данных в таблицу. При этом допускается вставка данных, являющихся результатом выполнения сложных запросов, в т. ч. и распределенных.

Перед выбором конкретного метода следует оценить, к каким источникам дан ных придется обращаться, будет ли перенос данных выполняться единожды или 326 Часть III. Администрирование периодически в течение длительного времени. Немаловажным при выборе ин струмента является легкость его использования и обеспечиваемая производи тельность. В табл. 11.1 приведена сводная информация о возможностях каждого из методов.

Таблица 11.1. Характеристики различных методов переноса данных Вер DTS BULK Репли- SELECT Требуемая функциональность INSERT кация INTO/ INSERT * * Автоматическое выполнение * * Графический интерфейс * * * Импорт из ODBC * * * Импорт из OLE DB * * * * * Импорт из текстового файла * * Командная строка/пакетная обработка * * Максимальная производительность * * * Программируемый интерфейс * * * Сценарий Transact SQL * * * * Специальный импорт/экспорт * Трансформация данных * Экспорт в ODBC * * * Экспорт в OLE DB * * Экспорт в текстовый файл Автоматическое выполнение переноса данных с использованием DTS и подсис темы репликации можно считать встроенной характеристикой. Для того чтобы иметь возможность выполнять перенос данных с помощью утилиты bcp.exe, ко манд BULK INSERT SELECT и INTO/INSERT периодически и в определенное время необходимо создать соответствующие задания для SQLServerAgent. Строго гово ря, и службы трансформации данных DTS также для автоматического выполне ния переноса данных используют службу SQLServerAgent. Только подсистема репликации сама обеспечивает автоматический перенос данных.

Для того чтобы иметь возможность обращаться к удаленным источникам дан ных необходимо предварительно установить специального поставщика OLE DB.

Это можно сравнить с настройкой ODBC-соединения. Рассмотрим технологию OLE DB более подробно.

OLE DB — это основной интерфейс корпорации Microsoft для доступа к дан ным, занявший место DB-Library, до последнего времени являвшимся основ Глава 11. Доступ к гетерогенным источникам данных ным низкоуровневым API для доступа к базам данных. Microsoft развила успех технологии ODBC, используемой для доступа к реляционным источникам дан ных, разработав технологию OLE DB, обеспечивающую универсальный доступ к широкому диапазону реляционных и нереляционных источников данных:

• мэйнфреймы ISAM/VSAM и иерархические базы данных;

• файловые хранилища и хранилища электронной почты;

• текстовые, графические и географические данные;

• пользовательские бизнес-объекты и другие.

Universal Access — это новая технология, пришедшая на смену Universal Server, при которой все данные экспортировались в особые базы данных, называемые универсальными серверами. Основная проблема универсальных серверов заклю чалась в немедленном устаревании данных, т. к. хранилась копия данных, а не сами данные. Приходилось либо заново экспортировать всю информацию, либо на прикладном уровне реализовывать механизмы оперативного экспорта обнов ленных данных. Использование технологии Universal Access предполагает обра щение непосредственно к данным, а не к их копии. Все данные остаются на своих местах в естественной для них форме. При этом необходимо использовать промежуточный слой, проводящий преобразование данных между различными форматами в реальном режиме. SQL Server решает эту проблему использовани ем поставщика OLE DB — специальных объектов, предоставляющих доступ к конкретным источникам информации. Дополнительным преимуществом техно логии OLE DB является возможность использования "родных" механизмов при обработке данных с помощью запросов.

В SQL Server 2000 реализован OLE DB 2.0, основанный на модели СОМ и пред ставляющий из себя гибкий и масштабируемый API низкого уровня. OLE DB — это открытая спецификация, предоставляющая средства для безболезненной интеграции компонентов различных производителей в единую систему. Исполь зование OLE DB повышает производительность операций переноса данных за счет снижения сетевого трафика, т. к. основная масса работы выполняется не посредственно в источнике данных.

SQL Server 2000 включает множество поставщиков OLE DB, обеспечивающих доступ к большинству современных систем накопления данных. Независимые разработчики могут легко создавать новых поставщиков OLE DB для поддержки своих собственных хранилищ данных.

( Замечание ^ Основой работы SQL Server 2000 с удаленными хранилищами данных является тех нология OLE DB. Но для сохранения обратной совместимости реализована возмож ность работы с SQL Server 2000 с использованием ODBC. При этом ODBC рассмат ривается как рядовой продукт, как, например MS Excel или MS Access. Для поддержки ODBC в SQL Server 2000 предназначен специальный поставщик OLE DB — OLE DB Provider for ODBC. Этот поставщик является своеобразным шлю зом между технологиями OLE DB и ODBC, выполняя преобразование из одного формата в другой.

328 Часть III. Администрирование Перенос данных в текстовый файл Возможности SQL Server 2000 действительно весьма велики. Пользователи могут напрямую обращаться к различным источникам данных — Oracle, MS Access, dBase и многим другим. Тем не менее, в некоторых ситуациях возникает необ ходимость использовать "нейтральный" формат, понятный любой системе. На пример, если требуется отправить прайс-лист по электронной почте множеству клиентов и гарантировать, что все они смогут его прочитать, выбор какого-то конкретного формата в этом случае нежелателен, т. к. нет гарантии, что все пользуются одинаковым программным обеспечением. Выходом из подобных ситуаций может служить использование простых текстовых файлов.

Можно с уверенностью сказать, что текстовый файл способны прочитать все.

Кроме того, большинство систем управления и обработки данных могут успеш но работать с текстовыми файлами. Если используется приложение, не поддер живаемое SQL Server 2000, то для обмена данными также можно применять тек стовые файлы. Конечно, при этом выполняется промежуточная операция, и скорость работы не велика, но все же это лучше, чем ничего.

Текстовые файлы могут быть успешно использованы для передачи данных меж ду серверами SQL Server 2000 с различными кодовыми страницами, порядками сортировки или сопоставлением Unicode. При выполнении изменения любого из трех перечисленных параметров на локальном сервере можно скопировать все данные в текстовые файлы, а после перестроения закачать их обратно.

В SQL Server 2000 имеется несколько различных способов работы с текстовыми файлами:

D утилита командной строки bcp.exe (Bulk Copy Program);

• команда Transact-SQL BULK INSERT;

П службы трансформации данных DTS.

Более подробно работа каждого из упомянутых методов будет представлена да лее в этой главе.

Службы Data Transformation Service В последнее время все больше используется централизованная модель хранения данных. Информация со всего предприятия стекается на один или несколько серверов баз данных, где она обрабатывается и хранится. Любой пользователь предприятия может обратиться к информации и получить ее в наиболее удобной форме. Если бы данные хранились распределенно, то каждый пользователь должен был бы сам заботиться о получении необходимых данных.



Pages:     | 1 |   ...   | 7 | 8 || 10 | 11 |   ...   | 33 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.