Книги, научные публикации Pages:     | 1 |   ...   | 4 | 5 | 6 | 7 | 8 |   ...   | 9 |

Kit Exam 70-228 SQL Server 2000 System Administration курс Сертификационный экзамен 70-228 Администрирование Microsoft SQL Server 2000 Официальное пособие Microsoft для самостоятельной подготовки ...

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

Предоставление доступа средствами операторов Вы можете предоставлять доступ к SQL Server 2000 и базам данных, используя сис темные хранимые Transact-SQL. Их синтаксис относительно прост, кроме того, вы можете создавать несколько учетных записей в одном сценарии. Также в од ном сценарии вы можете добавлять пользователей к роли сервера и к роли БД, созда вать роли БД, определенные пользователем, и добавлять к ним участников.

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

Управление доступом к SQL Server 2000 Табл. 10-5. Системные хранимые процедуры для администрирования учетных записей пользователей и трупп Системная хранимая процедура Описание учетную запись для пользователя группы Windows NT 4.0/ Удаляет учетную запись пользователя или группы NT 4.0/2000 с SQL Server. Однако это не может полностью запретить доступ к SQL Server.

если удаленный пользователь Ч член группы Windows NT 4.0/2000, доступ к SQL Server, то он также может подключаться к SQL Server Запрещает пользователям и членам групп Windows NT 4.0/2000 подключаться к SQL Server. Пользователь или которой запретили вход, не может подключить ся к SQL Server с помощью Другой учетной записи, связанной с пользователем или группой Windows БД, установленную по умолчанию для данной учетной записи Изменяет язык, установленный по умолчанию для ' учетной записи В следующем примере пользователю Bill домена предоставляется доступ к SQL Server 2000;

Учетные записи SQL Server В табл. 10-6 перечислены системные хранимые процедуры, которые используются для предоставления и запрешения доступа и для изменения прав доступа учетной записи, связанной с регистрационной SQL Server 2000. Только участники ролей сер вера и могут эти хранимые процедуры.

Табл. 10-6. Системные хранимые процедуры для администрирования учетных зашиты хранимая процедура Описание Создает новую учетную запись SQL Server. Если,, не заданы пароль и БД, они определяются как NULL, если не задана БД по умолчанию, ею становится master.

По умолчанию перед сохранением в таблице БД master пароль шифруется Удаляет учетную запись SQL Server Добавляет или изменяет пароль учетной записи Sp_defaultdb БД, установленную по умолчанию для данной учетной записи Изменяет язык, установленный по умолчанию для данной учетной записи Занятие 3 Создание и В следующем примере создается новая учетная запись Joe с паролем Joel23 и БД по умолчанию, Роли сервера В табл. 10-7 перечислены системные хранимые которые используются для добавления и удаления участника роли сервера. Только участники роли sysadmin мо гут добавлять учетные записи к любой роли. Участники какой-либо роли сервера могут добавлять участников к своей роли.

Гибл, 10-7. Системные хранимые для добавления и удаления учетных записей роли сервера Системная хранимая процедура Описание Добавляет учетную запись как участника роли сервера Удаляет учетную запись как участника роли сервера * В следующем примере участник Joe добавляется к роли сервера Security Admi nistrator:

, Доступ к базе данных В табл. 10-8 перечислены системные хранимые процедуры, которые используются для добавления или удаления учетной записи или пользователя или группы Windows как зарегистрированного пользователя к текущей БД. Вы можете предоставить дос туп группе Windows NT 4.0/2000, не создавая явно учетную запись в таблице sysxlogins (в отличие от SQL Server Enterprise Manager). Только участники роли сервера sysadmin и постоянных ролей БД db_accessadmin и db_owner могут использовать эти хранимые процедуры.

Табл. Системные хранимые для добавления и удаления учетных записей, пользователей или групп зарегистрированных хранимая процедура Описание Добавляет учетную запись в качестве пользователя БД. Хотя имя БД может отличаться от имени учетной записи, это делать не рекомендуется (чтобы избежать путаницы) Удаляет учетную запись как пользователя БД В следующем примере учетной записи Joe предоставляется доступ к текущей БД с использованием имени пользователя Joe БД Northwind.

USE Northwind EXEC доступом к SQL 2000 Глава Роли базы данных В табл. 10-9 перечислены системные хранимые процедуры, которые используются для изменения владельца БД, добавления или удаления записи пользователя, создания или удаления роли БД, определенной пользователем.

Табл. 10-9. Системные хранимые процедуры для изменения владельца БД, добавления н регистрационных записей и создания роли определенной Системная процедура Описание владельца пользовательской БД. Только ' участники роли сервера sysadmin или владельцы БД могут менять ее Добавляет регистрационную запись к роли БД базы. Вы можете добавить роль, определенную пользо вателем, к роли определенной пользователем или к постоянной роли БД. Только участники ролей и могут добавить участника к любой роли. Участники роли БД могут добавлять участников только к своей роли регистрационную запись из роли БД текущей базы. Только участники ролей sysadmin, и могут удалить участника из любой роли.

Участники роли БД могут удалять участников только из своей роли Создает новую роль, определенную пользователем, в текущей БД. Хотя вы определить владельца, рекомендуется использовать значение по умолчанию (dbo). Роли, определенные пользователем, могут создавать участники роли сервера sysadmin и ролей БД и роль, определенную пользователем, из текущей БД. Роли, определенные пользователем, могут удалять участники роли сервера sysadmin и ролей БД и В следующем примере к роли БД добавляется запись пользователя Use Northwind EXEC, Упражнение 4. Предоставление доступа к SQL Server и базам данных средствами Transact-SQL В этом упражнении вы с помощью системных хранимых процедур Transact SQL предоставите доступ пользователям и группам Windows 2000 к SQL Server 2000 и базам данных.

Занятие 3 и учетными записями Чтобы предоставить доступ к SQL Server 2000 и базам данных при помощи Откройте Windows Explorer.

2. Откройте файл из папки 3. В окне Windows Script Host вы увидите что процесс завершен.

Windows Script Host добавляет новое организационное подразделение (Organization в раздел Active Directory SQL Server. В созданное органи подразделение будут включены учетные записи пользователей и три группы с разграничением прав доступа: SQL Server Users, SQL Server Administrators и Accounting Users. В группу SQL Server Users будут добавлены 15 новых пользова телей Windows 2000. В группу SQL Server будут добавлены только из этих 15 пользователей. В группу Accounting Users будут добавлены 3 из этих пользователей. Чтобы закрыть окно Windows Script Host, щелкните ОК.

4. Раскройте меню SQL Server и выберите Query Analyzer, Откроется окно Connect To SQL Server.

5. Установите переключатель Windows Authentication, чтобы подключиться к домену с использованием средств Windows.

6. Щелкните ОК.

7. В панели инструментов кнопку Load SQL Script.

Откроется окно Open Query File.

8. Откройте файл SQL_Access.sql из папки Откроется сценарий который создаст новую БД Accounting и новую таблицу Customer. В эту таблицу с помощью оператора BULK INSERT из он занесет записи о 21 клиенте и предоставит группе пользо вателей Windows SQL Server Users право подключиться к SQL Server 2000. Затем он добавит группу пользователей Windows SQL Server Administrators к роли серве ра а группе Accounting Users предоставит доступ к БД Accounting. И на конец, он создаст определяемую пользователем роль Data Entry Managers и доба вит к ней пользователя Windows с именем Elba.

9. Чтобы выполнить щелкните кнопку Execute Query.

Обратите внимание, что в области результатов отображается запись о том, со здана БД Accounting и в нее добавлена 21 строка. Группе SQL Server Users предо ставлено право подключения к SQL Server 2000. Группа SQL Server Administrators добавлена к роли сервера sysadmin. Участники роли Accounting Users дос туп к БД Accounting. Создана роль Data Entry Managers и к ней добавлен пользова тель Elba.

Закройте SQL Query Analyzer.

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

Управление доступом к SQL Server 2000 Просмотр информации о правах доступа с помощью SQL Server Enterprise Manager Если вы используете SQL Server Enterprise Manager, в дереве консоли раскройте кон тейнер Security. Здесь содержатся контейнеры Logins и Server Roles. В Logins включе ны все пользователи, которые имеют право подключаться к этому экземпляру SQL Server 2000 (рис. 10-19).

Рис. Просмотр списка всех пользователей SQL Server Обратите внимание, что учетные записи SQL Server 2000, а также пользователи и группы Windows 2000. Кроме того, все пользователи, в груп пу Server Administrators, имеют только те права доступа, которые определены для данной группы. Эта группа имеет учетную запись, так как является участником роли сервера Вы можете удалить любую учетную за пись, выбрав ее и нажав клавишу Чтобы просмотреть или изменить парамет ры учетной записи, в том числе роли сервера и доступ к БД, дважды щелкните ее Ч откроется окно SQL Server Login Properties (рис. 10-20).

Рис. 10-20. Просмотр свойств учетной записи Примечание Системный администратор может изменить пароль любой учетной за писи SQL Server.

3 Создание и управление учетными Роли сервера перечислены в группе объектов Server Roles Рис. 10-21. Просмотр ролей сервера Дважды роль сервера, чтобы добавить или удалить ее члена (рис. 10-22).

Рис. 10-22. Изменение списка участников роли сервера Чтобы просмотреть права доступа к БД, вы можете открыть либо список пользова телей, либо список БД. В дереве консоли раскройте нужную БД, затем раскройте Users, чтобы просмотреть список пользователей, которые имеют к ней доступ (рис.

...

Х i F Рис. 10-23. Просмотр списка имеющих доступ к БД На рис. 10-23 показано, что члены группы Windows Users и пользователь Windows имеют доступ к БД Accounting них Управление доступом к SQL Server к этой БД имеют участники роли dbo). Пользователь имеет только право доступа, определенное для группы, в которую он входит. Чтобы узнать, к какой группе принадлежит Elba, дважды щелкните Откроется окно Database User Properties Ч (рис. 10-24), где вы увидите, что пользователь Elba имеет доступ в качестве участника определенной пользователем роли БД Data Entry Managers. Щелкните кнопку Permissions, чтобы посмотреть права пользователя. Чтобы посмотреть параметры роли БД, ее участников и права, щелк ните кнопку Properties. Подробнее о правах пользователей Ч в главе 11.

Рис. 10-24. Выбор роли для пользователя Чтобы еще раз проверить все роли БД, в дереве консоли раскройте Roles (рис. 10-25). Дважды щелкните роль, чтобы просмотреть, добавить или удалить учет ные записи ее членов (рис. 10-26).

Рис. 10-25. Просмотр ролей БД Занятие 3 Создание и управление учетными записями Рис. 10-26. Просмотр, добавление и удаление членов роли Просмотр информации о правах с помощью Вы также можете просматривать информацию о правах доступа к SQL Server 2000, используя системные хранимые процедуры Transact-SQL. С помощью системных хра нимых процедур, перечисленных в табл. 10-10, вы можете узнать параметры учетных записей, ролей сервера и БД и доступа к БД. Выполнять системную хранимую проце дуру могут только участники ролей сервера sysadmin и securityadmin;

все остальные процедуры из этого списка доступны также участникам роли public, Пользователь Windows может иметь доступ к SQL Server 2000 в качестве участника одной группы Windows, а к БД Ч в качестве участника другой группы Win dows.

Табл. 10-10. Системные хранимые возвращающие информацию о доступа Системная или расширенная Описание хранимая Sp [ Выводит информацию обо всех или об определенной учетной записи: к каким БД она имеет доступ и каким ролям принадлежит ] Выводит информацию обо всех или об определенной роли сервера и ее участниках [ Выводит информацию обо всех или об определенном БД, включая список ролей, участником которых он является [ ] Выводит информацию обо всех ролях или всех участниках определенной роли БД [ ] Выводит информацию обо всех или об ленной группе Windows NT 4.0/2000 текущей БД Управление доступом к SQL Server Упражнение 5. Просмотр информации о правах доступа к SQL Server В этом упражнении вы используете SQL Server Enterprise Manager ные хранимые процедуры просмотра о правах доступа.

Чтобы просмотреть информацию о правах доступа к SQL Server что вы зарегистрировались на контроллере домена под учетной записью Administrator.

2. Раскройте меню SQL Server и выберите Enterprise Manager.

3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers, Microsoft SQL Group, экземпляра сервера по умолчанию, Security и Logins.

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

4. В правой панели дважды щелкните Server Users.

Откроется окно SQL Server Login Properties Ч Server Users.

5. Перейдите на вкладку Server Roles.

Обратите внимание, что данная группа Windows не является членом ни одной роли сервера.

6. Перейдите на вкладку Database Access.

Обратите внимание, что группа Windows не имеет доступа ни к одной БД.

7. Щелкните Cancel.

8. Из меню Tools вызовите SQL Query Analyzer.

9. В панели инструментов щелкните кнопку Load SQL Script.

Откроется окно Open Query File.

10. Откройте файл из папки Откроется сценарий содержащий системную хранимую процедуру Чтобы выполнить сценарий щелкните кнопку Execute Query.

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

12. Разверните окно SQL Server Enterprise Manager.

В области просмотра объектов и их свойств дважды щелкните Server Administrators.

Откроется окно SQL Server Login Ч Server Administ rators. На вкладке General указано, что данная группа имеет доступ, определяемый для всей группы (она является участником роли сервера sysadmin).

14. Перейдите на вкладку Server Roles.

Обратите внимание, что данная группа Windows является участником роли серве ра System Administrators.

3 Создание и учетными Перейдите на вкладку Database Access.

Обратите внимание, что в список прав данной группы Windows не включены пра ва доступа ни к одной БД. Эта информация не указана, потому что участники дан ной группы имеют доступ ко БД по определению.

16. Щелкните Cancel.

17. Разверните окно SQL Query Analyzer.

18. В инструментов шелкните кнопку Load SQL Script.

19. Откройте файл из папки Откроется сценарий Transact-SQL, содержащий системную хранимую процедуру которая определяет роль сервера sysadmin.

20. Чтобы выполнить сценарий ServerRoleMembers.sql щелкните кнопку Execute Que ry. Обратите внимание, что в области результата указаны три участника роли sysadmin: два участника по умолчанию и группа Server rators.

21. Разверните окно SQL Server Enterprise Manager.

22. В дереве консоли щелкните правой кнопкой Databases и выберите Refresh.

23. В дереве консоли раскройте Databases, затем Ч Accounting и щелкните Users.

В области, отображающей свойства и состав объектов, указано, что только одна группа и один пользователь имеют доступ к этой БД.

Обратите внимание, что ни пользователь, ни группа не имеют явно определенно го к данному экземпляру SQL Server 2000. Чтобы подключиться к системе SQL Server 2000, пользователь или группа должны быть роли SQL Server Users. Хотя можно предоставить им право доступа, лучше сохранить эту ру. Подробнее об использовании групп учетных групп доступа к данным и правах Ч в главе В области отображения свойств и состава объектов дважды щелкните SQL\Elba.

Откроется окно SQL Server Login Properties Ч Обратите вни мание, что пользователь Elba является участником ролей public и Data Entry Managers и что у него нет имени учетной записи, позволяющей подключиться к SQL Server, и для подключения к SQL Server он должен учетную за пись группы.

25. Щелкните кнопку Обратите внимание, что для пользователя Elba не определено никаких прав. В гла ве вы установите соответствующие права для роли и Data Entry Managers.

26. Щелкните Cancel.

27. Щелкните Cancel, чтобы закрыть окно Database User Properties Ч SQL\E1ba.

28. Разверните окно SQL Query Analyzer.

29. На панели инструментов щелкните кнопку Load SQL Script.

Откроется окно Open Query File.

30. Откройте файл из папки Откроется сценарий Transact-SQL, который содержит 3 системные хранимые про выполняющие запросы к БД Accounting. Системная хранимая процедура запрашивает информацию о группах об определенной роли Data Entry Managers, sp Ч обо всех группах Windows, имеющих доступ к БД.

Управление доступом к SOL Server 2000 31. Чтобы выполнить сценарий щелкните кнопку Execute Query.

Обратите что в области результата запроса указано, что группа Users является участником роли public этой БД. Кроме того, является участником группы Data Entry Managers, а группа единственной группой, имеющей доступ к БД.

Резюме Вы можете предоставить пользователям доступ SQL Server 2000, используя SQL Server Enterprise Manager. При этом вы также можете определить их права на выполнение различных задач на уровне сервера, предоставить им доступ к БД и сделать их никами какой-либо роли БД. Однако за один раз вы можете определить права только одного пользователя. С помощью хранимых процедур вы можете предоставить дос туп нескольким при этом потребуется только один сценарий SQL. Вы можете просмотреть права доступа к SQL Server 2000 и БД с помощью SQL Server Enterprise Manager и Закрепление материала J Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего занятия. Правильные ответы приведены в приложении Воп росы и ответы в конце книги.

1. Вы хотите надежно защитить информацию БД SQL Server 2000. Все пользователи, которые имеют к ним доступ, являются пользователями Windows 2000. Нужно ли разрешить проверку подлинности средствами SQL Server? Почему?

2. Сотрудница службы поддержки сообщила, что она может зарегистрироваться в SQL Server 2000 и имеет доступ к БД и Pubs, однако не видит БД Reports. Возможно ли это, если да, почему?

3. Вы устанавливаете новый экземпляр SQL Server 2000. Вам нужно доступ к различным БД сотням пользователей. Что вы будете использовать для создания учетных записей и записей пользователей Ч Server Enterprise Mana ger или системные хранимые процедуры Transact-SQL? Почему?

Управление разрешениями SQL Server Занятие Предоставление разрешений уровня базы данных 2. Использование приложения 3. Разработка стратегии предоставления доступа и назначения В этой главе После того как вы предоставили доступ к SQL Server 2000 и его БД пользователям и группам Windows 2000, а также, при необходимости, пользователям SQL Server 2000, вы должны назначить им соответствующие разрешения. В этой главе вы узнаете, как сконфигурировать разрешения доступа к определенным БД для пользователей, Windows и пользовательских ролей БД. Также вы узнаете, как использовать роли при ложения. В заключение, вы научитесь разрабатывать стратегии для создания риев, реализующих средства защиты. При создании этих сценариев вы будете исполь зовать все перечисленные выше средства.

Прежде всего Для изучения материалов этой главы вам потребуются:

Х компьютер, соответствующий минимальным аппаратным требованиям, ленным в главе 2;

Х ОС Microsoft Windows 2000 Server, установленная на разделе диска с файловой системой NTFS;

Х компьютер с сетевым именем сконфигурированный как контрол лер домена Х один установленный по умолчанию и по крайней мере один именованный экзем пляр SQL Server 2000;

Х БД SSEMDB, созданная при помощи Х результаты упражнений главы 10.

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

Изучив материал этого вы сможете:

описать типы разрешений уровня БД;

предоставлять, блокировать и отзывать разрешения на выполнение операторов;

блокировать и отзывать разрешения на работу с объектами;

определять и просматривать действующие разрешения.

Продолжительность - около 45 минут Способы получения разрешений Пользователям БД необходимы разрешения на работу с данными, выполнение хра нимых процедур, создание объектов БД и выполнение административных задач.

Пользователи получают полные или ограниченные разрешения доступа к БД следую способами:

Х членство в серверной роли sysadmin;

право собственности на БД;

Х право собственности на объект БД, полученное в результате членства в роли БД или группе Windows NT 4.0/2000;

Х членство в фиксированной роли БД;

получение отдельных разрешений доступа в результате членства в роли БД или группе Windows NT 4.0/2000;

Х наследование разрешений роли public пользователем, который обладает доступом Х наследование разрешений пользователя guest пользователем, который не имеет доступа к БД.

Наследуемые разрешения Владелец а также члены серверной роли sysadmin и фиксированной роди наследуют разрешения, необходимые для выполнения любых действий в БД. К тому же пользователи, которым назначена постоянная роль БД db_owner, наследуют достаточно широкие разрешения доступа для выполнения различных действий в этой БД. Например, члены фиксированной роли БД могут выполнять опе раторы GRANT, REVOKE или DENY над всеми объектами БД, но не могут выполнять 1 разрешений базы данных операторы CREATE или BACKUP. И наоборот, члены фиксированной роли могут выполнять операторы CREATE или BACKUP, но не REVOKE или DENY. Более того, члены роли могут считывать данные из любой таблицы или представления в БД, а члены роли Ч записывать и изменять данные во всех таблицах и представлениях в БД.

Владелец объекта (пользователю нужно предоставить разрешение на создание объекта) наследует все связанные с объектом разрешения включая предоставлять разрешения на работу с данным объектом. Члены роли сервера sysad а также члены фиксированных ролей БД и могут менять владельца любого объекта БД (и отзывать все назначенные объекту разре шения).

Действие и результирующие конфликты Группам Windows, пользовательским ролям и отдельным пользователям можно на значать и блокировать наборы разрешений, связанные с ролями сервера и фиксиро ванными ролями БД, а также конкретные разрешения на выполнение и работу с объектами. Разрешения, предоставленные группе или роли, наследуются все ми пользователями этой группы или роли. Действующие разрешения доступа вателя, входящего в состав нескольких групп или ролей Ч это совокупность разреше ний соответствующих ролей и групп.

Можно также отзывать и блокировать разрешения отдельных ролей, групп пользователей. Как и в Windows 2000, блокировка разрешения имеет более высокий приоритет по отношению ко всем другим разрешениям. Например, если вы предос тавляете пользователю разрешение на просмотр таблицы, но он входит в состав груп пы или роли, для которых данное разрешение пользователь не смо жет просмотреть таблицу.

Примечание Если соединение устанавливается с использованием учетной записи зователя SQL Server 2000, блокировка и предоставление разрешений и группам Windows не работают. В этом случае SQL Server 2000 не какой именно пользователь работает с сервером. Используется только конкретная учетная запись SQL Server 2000 и назначенные ей разрешения.

Упражнение Создание и выявление конфликтов с разрешениями доступа В этом упражнении вы создадите конфликт разрешений доступа и затем уст раните его.

Чтобы создать и выявить конфликт разрешений Убедитесь, вы зарегистрировались на контроллере домена под учетной записью Administrator.

2. Раскройте меню SQL Server и выберите Enterprise Manager.

Откроется окно SQL Server Enterprise Manager, в левой области которого отобра жаются деревья консоли Microsoft SQL Servers и Event Viewer (Local).

3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL SQL Server Group, экземпляра SQL Server по умолчанию, Databases, и Users.

Управление разрешениями SQL Server 4. В правой панели дважды щелкните Joe.

Откроется окно Database User Properties Ч Joe.

5. В группе Database Role Membership пометьте флажок и щелкните Apply.

6. Раскройте меню SQL Server и выберите Query Analyzer.

Откроется окно Connect To Server.

7. Щелкните SQL Server Authentication.

8. В поле Login Name введите Joe.

9. В поле Password введите password и щелкните OK Обратите внимание, что вы подключились к БД master под именем пользователя Joe.

10. В панели инструментов в списке Database выберите в качестве текущей БД SSEMDB.

В панели запросов введите * FROM Customer.

В панели инструментов щелкните Execute Query.

Обратите внимание, что пользователь Joe может просматривать все записи в таб лице Customer.

13. Переключитесь в SQL Server Enterprise Manager.

14. В группе Database Role Membership пометьте флажок и щелк ните Apply.

Не закрывайте окно Database User Properties Ч Joe. Оно понадобится вам в следу упражнении.

15. Переключитесь в SQL Query Analyzer.

16. В панели инструментов щелкните Execute Query, чтобы еще раз выполнить запрос SELECT * FROM Customer.

Заметьте: у пользователя Joe теперь нет разрешений на просмотр записей таблицы Customer. Возник конфликт разрешений Ч блокировка разрешения (DENY) при останавливает действие всех предоставленных разрешений доступа.

17. Не закрывайте окна SQL Server Enterprise Manager и SQL Query Analyzer.

Управление разрешениями на выполнение операторов Разрешения на выполнение операторов (statement permissions) Ч это разрешения на выполнение отдельных операторов Transact-SQL, используемых для создания БД и их объектов, например таблиц, представлений и хранимых процедур. В табл. 11- перечислены разрешения доступа, связанные с этими операторами. Разрешения на вы полнение каждого из этих операторов можно предоставить, отозвать или блокировать.

Табл. на операторов Оператор Transact-SQL Разрешения на выполнение оператора Transact-SQL CREATE DATABASE Данные разрешения наследуются членами ролей сервера sysadmin и Хотя участники ролей sysadmin и могут предоставлять разрешения на выполнение этого опера тора пользователям, расширенными разрешениями в рамках защиты данных, но в основном, разрешения все эти пользователи получают через роль сервера dbcreator, если системный администратор делегирует разреше ния доступа. Эти разрешения доступа только в БД master Занятие 1 разрешений данных 3 Табл. (окончание) Оператор Transact-SQL Разрешения на выполнение оператора Transact-SQL BACKUP DATABASE Данные разрешения наследуются членами роли сервера BACKUP LOG а также фиксированных ролей БД и Хотя вы можете предоставлять разрешения на выполнение этих операторов пользователям, но главным образом, вы будете использовать для этого постоянную роль БД CREATE TABLE Эти разрешения наследуются членами роли сервера CREATE и фиксированных ролей БД и CREATE PROCEDURE В процессе разработки БД разрешения на создание данных CREATE DEFAULT объектов иногда предоставляются непосредственно програм CREATE RULE мистам (либо группе программистов или CREATE FUNCTION роли). По умолчанию объекты принадлежат их создателю (хотя объекты, созданные пользователями Ч участниками роли сервера принадлежат dbo). Пользователи, входящие в состав постоянных ролей БД и могут указывать роль dbo в качестве создаваемых ими объектов. К тому же члены роли сервера sysadmin или постоян ной роли БД db_ddladmin могут указать любого пользователя как созданного ими объекта. Однако пользователи, не участниками ни одной из этих ролей, не могут указывать другого пользователя или dbo в качестве созданного ими объекта CREATE TRIGGER Данные разрешения доступа наследуются в которой определен триггер, а также членами роли сервера sysadmin и фиксированных ролей БД и db Они не могут разрешения доступа на запуск этого оператора другим учетным записям Проблемы с созданием вызываемые цепочкой владельцев Когда пользователь создает объект БД, например таблицу или представление, он ста новится владельцем этого объекта, пока другой пользователь, группа или роль бу дут определены в качестве владельца. Доступ пользователя к своим объектам может быть полезен в разработки БД, однако в процессе реальной эксплуатации БД могут возникнуть проблемы, и вам следует опасаться этого по нескольким причинам (об этом Ч далее). Полезно предоставить роли dbo разрешения над всеми объектами производственной БД.

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

Следующий запрос выводит все данные таблицы Customer при условии, что таб лица принадлежит либо роли dbo, либо пользователю, выполняющему сценарий:

SELECT * FROM Server Следующий запрос выводит данные таблицы Customer, Joe. Если в БД есть другая роли dbo, данные не выводятся.

Если в БД имеется несколько таблиц с одинаковыми именами, то при указании име ни, отличного от dbo, может ошибка.

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

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

В следующем примере показано создание таблицы с предоставлением права соб ственности на эту таблицу роли dbo. Только члены роли сервера и ролей БД или db_ddladmin имеют разрешение выполнять этот оператор:

CREATE TABLE nchar (5), (40) ) Смена владельца Если владельцем некоторого объекта БД является не dbo, вам может понадобиться права собственности на этот объект. Члены ролей БД db_ddladmin или либо роли сервера sysadmin могут менять права собственности на любой объект БД при помощи системной хранимой процедуры В следующем примере меняется владелец таблицы Customer. Вместо пользователя владельцем таблицы становится роль dbo:

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

Предоставление, блокирование и отзыв разрешений на выполнение операторов средствами SQL Server Enterprise Manager SQL Server Enterprise Manager предоставляет простой графический интерфейс для просмотра разрешений доступа на выполнение операторов, а также для Занятие 1 базы данных предоставления, блокирования и отзыва этих разрешений. Чтобы просмотреть в БД существующие разрешения на выполнение операторов, кнопкой БД и выберите Properties. На вкладке Permissions диалогового окна Properties вы можете выполнить все перечисленные операции над разрешениями доступа (рис.

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

ная галочка рядом с именем пользователя или роли что они обладают со ответствующими разрешениями, красный крестик означает блокирование разреше ния, а отсутствие метки Ч отзыв или неприменимость данных разрешений для поль зователя или роли. Помните: если для объекта определено несколько разрешений, результирующие разрешения доступа в основном будут определяться как сумма всех имеющихся но запрет разрешений имеет приоритет над всеми остальными. Например, на рис. для роли public блокировано разрешение на со здание таблицы. Поэтому под именем пользователя Joe вы не сможете создать табли цу, несмотря на то, что ему в порядке были предоставлены такие разрешения. Однако запрет на выполнение операторов никак не отражается на члене роли сервера (в которую входит учетная запись sa). Наконец, следует отме тить, что в данном списке разрешений отображаются только те разрешения на вы полнение операторов, которые непосредственно пользователю. Раз решения на выполнение операторов, предоставленные пользователю через его уча стие в роли сервера или постоянной роли БД, здесь не отображаются.

Предоставление, блокирование и отзыв разрешений на выполнение операторов средствами Transact-SQL Вы можете использовать операторы GRANT, DENY и REVOKE для управления раз решениями на выполнение операторов при помощи сценариев Эти опе раторы могут быть использованы для предоставления, блокировки и отзыва разреше ний на выполнение отдельных операторов. Когда они используются с ключевым сло вом ALL, разрешения доступа распространяются на все операторы и объекты.

320 Управление SQL Server В примере пользователю Joe (имя учетной записи SQL Server), роли (определяемая пользователем роль БД) и группе verAdmins (группа Windows) предоставляется разрешение на выполнение оператора CREATE TABLE:

GRANT CREATE TABLE TO Joe, SalesManagers, Примечание При ссылке на локальную встроенную группу Windows, например BUIL Operators, лучше указывать а не имя домена или локального компьютера.

В следующем примере пользователю Joe будет запрещено выполнение оператора CREATE TABLE. Чтобы удалить блокировку, заданную оператором DENY, исполь зуйте операторы REVOKE или GRANT.

DENY CREATE TABLE TO Joe В следующем примере у пользователя Joe будут отозваны все разрешения, а также отменены установленные для блокировки. Сюда входят разрешения на выполнение операторов и разрешения на объекты.

REVOKE ALL FROM Joe Просмотр разрешений на выполнение операторов средствами Вы можете просмотреть разрешения на выполнение операторов в БД, используя системную хранимую процедуру Все пользователи БД имеют разрешения на выполнение этой процедуры.

В следующем примере выводится список всех разрешений на выполнение опера торов в текущей БД:

EXEC NULL, NULL, NULL, Упражнение 2. Предоставление и проверка разрешений на выполнение операторов В этом упражнении вы предоставите разрешения на выполнение операторов и затем проверите их.

Чтобы предоставить и проверить разрешения на выполнение операторов Переключитесь в SQL Query Analyzer.

2. Убедитесь, что вы подключились к SQL Server под именем Joe.

3. В панели инструментов Load SQL Script.

окно SQL Query Analyzer, выдающее вопрос, хотите ли вы сохранить изменения в предыдущем сценарии.

4. Щелкните No.

Откроется окно Open Query File.

5. Откройте файл из папки Откроется сценарий Transact-SQL. который создаст новую таблицу с названием и добавит в нее одну запись. Обратите внимание, что в качестве обла дателя разрешения владения для таблицы не указан определенный владелец. За тем сценарий выполняет к новой таблице.

Занятие 1 уровня базы 6. В панели инструментов щелкните Execute Query, Обратите внимание, что успешно создана и в нее добавлена одна запись.

Пользователь Joe может создавать таблицы, так как он относится к членам роли Однако Joe не может просматривать данные, потому что он относится к пользователям, которым назначена постоянная БД 7. Переключитесь в SQL Server Enterprise Manager.

Обратите внимание, что окно Database User Properties Ч Joe до сих пор открыто с момента выполнения последнего упражнения.

8. В диалоговом окне Database User Properties Ч Joe снимите флажок рядом с име нем роли Db_denydatareader и щелкните Apply.

9. Переключитесь в SQL Query Analyzer.

10. В области запроса выберите SELECT * FROM TestTablel и в панели инструментов щелкните Execute Query.

Обратите внимание, что пользователь Joe теперь может успешно выполнить запрос.

В меню File выберите Connect.

Откроется окно Connect To SQL Server.

12. Щелкните SQL Server Authentication.

В поле Login Name введите sa и щелкните ОК.

Обратите внимание, что подключиться к серверу можно как sa без указания паро ля. В где будет эксплуатироваться ваша БД никогда не разрешайте исполь зовать смешанный режим проверки подлинности и оставлять пустой строку паро ля системного администратора.

14. В панели инструментов в списке БД выберите в качестве БД SSEMDB.

15. В панели запросов введите SELECT * FROM TestTablel и в панели инструментов щелкните Execute Query.

Обратите внимание, что объект TestTable! не будет найден, если в качестве дельца объекта TestTable 1 пользователь с учетной записью sa. Причина в том, что SQL Server 2000 ищет этот объект только как объект, принадлежащий или пользователю sa, или роли dbo. А так как он принадлежит пользователю он не будет найден.

16. В панели запросов введите SELECT * FROM и в панели инстру ментов щелкните Execute Query.

Обратите что на экране отображается содержимое объекта TestTable, владельцем которого является пользователь Joe.

17. Переключитесь на пользовательскую сессию Joe в окне SQL Query 18. Измените оператор CREATE TABLE, указав в качестве владельца роль dbo (те перь оператор должен начинаться так: CREATE а за тем в панели инструментов щелкните Execute Query.

Обратите внимание, что таблица успешно создана и в нее добавлена одна запись.

Однако заметьте, что данные были добавлены в объект Joe.TestTablel, а не в dbo.TestTablel.

19. Переключитесь в SQL Server Enterprise Manager.

20. В диалоговом окне Database User Properties Ч Joe снимите флажок рядом с и щелкните ОК.

21. В дереве консоли щелкните правой кнопкой БД SSEMDB и выберите Properties.

Откроется окно SSEMDB Properties.

22. Перейдите на вкладку Permissions.

322 Управление SQL Server 23. Для пользователя Joe пометьте флажки в полях Create Table, Create View и Create SP и ОК.

24. Переключитесь в SQL Query 25. Проверьте, что вы подключены к SQL Server под именем Joe.

26. В панели инструментов Load SQL Script.

Откроется окно SQL Query где задается вопрос, хотите ли вы сохранить изменения в предыдущем сценарии.

27. Щелкните No.

Откроется окно Open Query 28. Откройте файл из папки Откроется сценарий который создаст новую таблицу с именем TestTable2 и добавит в нее одну запись, а также создаст хранимую ко торая выведет содержимое трех полей таблицы, и создаст представление, в кото рое будут включены два поля таблицы. Обратите внимание, что в качестве облада теля владения для каждого созданного объекта не указан ный владелец. Затем сценарий выполняет запрос к новой 29. В панели инструментов щелкните Execute Query.

Обратите внимание, что и таблица, и и представление успешно созда ны. Пользователь с именем Joe имеет явно определенные разрешения на создание таблиц, хранимых процедур и представлений. Он может выполнять запросы, ото содержимое таблицы и представления, а также выполнять хранимую потому что он владелец этих объектов.

30. Переключитесь в SQL Server Enterprise Manager.

31. В дереве консоли, расположенном ниже объекта SSEMDB, щелкните Stored Proce dures.

32. Правой кнопкой щелкните Stored Procedures и выберите Refresh.

Обратите внимание, что в области отображения информации о файлах указано, что пользователь Joe является владельцем хранимой процедуры 33. Переключитесь в SQL Query 34. что вы подключились к SQ под именем Joe.

35. Измените оператор CREATE TABLE, указав в качестве владельца роль dbo (те перь оператор должен начинаться так: CREATE 36. Выделите весь текст оператора CREATE TABLE (но не другие операторы в сцена рии) и в панели инструментов щелкните Execute Query.

Обратите внимание, что пользователь под именем Joe не может создавать таблицу, в качестве владельца которой указана роль dbo. разрешения на выполнение ра CREATE TABLE не позволяют этого делать (в отличие от членов постоянной роли БД db_owner).

37. Переключитесь на пользовательскую сессию sa в окне SQL Query Analyzer.

38. В панели инструментов щелкните Load SQL Script.

SQL Query Analyzer выдаст вопрос, хотите ли вы сохранить изменения в щем сценарии.

39. Щелкните No.

Откроется окно Open Query File.

40. Откройте файл из папки 1.

1 уровня базы данных Откроется сценарий Transact-SQL, который изменит разрешения владельца TestTable2, и предоставив это разрешение роли dbo. Затем сценарий проверит выполненные изменения.

41. В панели инструментов щелкните Execute Заметьте, что разрешение владельца для каждого их этих трех объектов БД было успешно изменено.

42. Завершите все пользовательские сессии в окне приложения SQL Query Не сохраняйте изменения.

43. В меню File выберите Connect.

Откроется окно Connect To SQL Server.

44. Щелкните SQL Server Authentication.

45. В поле Login Name введите Joe.

46. В поле Password введите password и щелкните ОК.

Обратите внимание, что вы подключились к БД master под именем Joe.

В панели инструментов в списке БД выберите в качестве текущей БД SSEMDB.

В панели запросов введите SELECT * FROM и в панели инструментов щелкните Execute Query.

Обратите внимание, что пользователь Joe не может просмотреть какие-либо запи си в таблице TestTable2. Теперь разрешение владельца таблицы принадлежит роли dbo. Пользователь Joe не имеет никаких разрешений на выполнение оператора SELECT для каких-либо объектов, владельцем которых он не является.

49. В панели инструментов Clear Window.

50. В панели запросов введите EXEC NULL, NULL, NULL, 's' и в панели инструментов щелкните Execute Query.

Обратите внимание, что отображены предоставленные пользователю разрешения Joe на выполнение трех операторов. Не отображаются разрешения, предоставлен ные пользователю через его участие в постоянной роли БД.

51. Закройте все активные соединения в окне SQL Query Analyzer, но пока не закры вайте само окно приложения SQL Query Analyzer.

Управление разрешениями доступа к объектам Разрешения доступа к объектам Ч это разрешения на выполнение определенных опе раций с таблицами, представлениями, функциями и хранимыми процедурами. В табл. 11-2 указаны различные виды разрешений доступа к объектам, связанными с объектами БД. Предоставление, блокировка или отзыв разрешений доступа для каж дого из этих операторов может выполняться членами роли сервера sysadmin и фикси рованных ролей БД и (а также владельцами соответствую щего объекта Табл. 11-2. Разрешения доступа к объектам БД Разрешение Допустимые действия SELECT Просмотр данных в таблице, представлении или поле или на определенные пользовательские функции.

членами роли сервера sysadmin и постоянных ролей БД и В этом разрешении отказано всем членам фиксированной роли 12- разрешениями SQL Глава Табл. 11-2. (окончание) действия INSERT новых данных в таблицу или представление.

Наследуется членами роли сервера и фиксированных ролей БД и В этих разрешениях отказано всем членам фиксированной роли UPDATE Обновление данных в таблице, поле или представлении.

Наследуются членами роли сервера sysadmin и фиксированных ролей БД и В этом разрешении отказано всем членам фиксированной роли DELETE Удаление данных из таблицы или представления. Наследуются членами роли сервера sysadmin и фиксированных ролей БД и В этом разрешении отказано всем членам фиксированной роли EXECUTE Выполнение хранимых процедур и пользовательских функций.

Наследуются членами роли сервера sysadmin и фиксированной роли БД REFERENCES Обращение к таблице с ограничением FOREIGN KEY при отсутствии разрешений SELECT на таблицу. Наследуются членами роли сервера sysadmin и постоянных ролей БД и В этом разрешении отказано всем членам в фиксированной роли Обратите внимание, что вы можете использовать фиксированные роли БД db_data reader и предоставления или отмены разрешений на выполнение операторов SELECT и REFERENCES no отношению ко всем объектам в БД. Также вы можете использовать постоянные роли и для предо ставления или запрета на выполнение операторов INSERT, UPDATE и DELETE отношению ко всем объектам БД. Для предоставления пользователю разрешений на выполнение оператора EXECUTE объект следует предоставлять это разрешение отдель но (пользователю, группе или роли), так как роль БД, не являющаяся постоянной (в отличие от постоянной роли владельца БД не предоставляет такого разре шения. Кроме того, если вам нужно предоставить или отказать в разрешениях на объект, расположенный в некотором подмножестве объектов в БД, вы можете сде лать это в частном порядке, то есть предоставить или отказать в разрешениях доступа именно к этим объектам. Вы можете предоставлять разрешения доступ к этим объектам или отменять разрешения доступа по отношению к опреде ляемой пользователем роли БД, группе Windows, имени учетной записи пользователя SQL Server или пользователю Windows.

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

разрешений уровня базы данных Использование SQL Server Enterprise Manager SQL Server Enterprise Manager предоставляет простой графический интерфейс для просмотра, предоставления, блокирования и отзыва разрешений доступа к объектам.

Чтобы просмотреть разрешения доступа к таблице, представлению или хранимой процедуре, щелкните нужный объект в правой панели правой кнопкой и выберите Properties. Щелкните Permissions Ч откроется окно Object Properties, где можно вы полнить все перечисленные действия (рис.

11-2. Просмотр и разрешений доступа к объектам Как и в окне, где отображаются разрешения на выполнение операторов, здесь так же отображается список пользователей, которым разрешен доступ к объектам, и пользовательская роль БД отображается вместе с назначенными им разрешениями доступа к объекту. Обратите внимание, что вы можете изменить свойства списка пользователей так, чтобы отображались только те пользователи или роли, которые действительно имеют разрешения доступа к этому объекту (рис. 11-3).

Рис. 11-3. Просмотр списка пользователей и ролей, обладающих разрешениями доступа к конкретному объекту Управление Server Вы можете также щелкнуть отдельного пользователя или роль, а затем Ч кнопку Columns. Появится окно Column Permissions, где можно просмотреть или изменить разрешения доступа на уровне полей Например, можно ограничить разре шения доступа на выполнение SELECT или UPDATE на отдельное поле таблицы, которой вы уже назначили такие разрешения (рис.

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

Рис. 11-5. Выбор другого объекта для просмотра разрешений доступа Обратите внимание, что в окне на рис. отображается хранимая проце дура. Единственное разрешение, которое можно для нее определить, Ч это EXECUTE.

Итак, можно не только просматривать разрешения доступа к объекту, выбрав его в списке, но еще можно просматривать и управлять этого объекта, выб рав вид отображения разрешений по пользователям или ролям. В области диалогового 1 уровня базы окна Enterprise Manager, где отображается информация о файлах, щелкните правой кнопкой определяемую пользователем роль БД или имя пользователя, которому разре шен доступ, затем перейдите на вкладку Properties и щелкните Permissions (рис.

'Х ' п ц " а ! b а b :

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

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

блокирование и отзыв разрешений доступа к объектам средствами Transact-SQL Вы можете использовать операторы GRANT, DENY и REVOKE для управления раз доступа к объекту, используя Transact-SQL.

Следующий оператор предоставляет пользователю Joe (имя пользователя SQL ver), роли роль БД) и группе Users (группа Windows) разрешение выполнять оператор SELECT к таблице Customer.

GRANT SELECT ON TO Joe, SalesUsers, В следующем примере пользователю Joe будет запрещено выполнять операторы INSERT, UPDATE и DELETE к объекту:

DENY INSERT, UPDATE, DELETE TO Joe 328 Управление Server Глава Когда разрешения доступа на работу с объектами предоставляются с использова нием операторов вы также можете использовать необязательный пара метр WITH GRANT OPTION. С помощью этого параметра вы можете предоставлять пользователю, роли или группе определенные разрешения доступа для работы с объектом, а также разрешить им эти разрешения любым другим зарегист рированным в БД пользователям, роли или группе.

В примере роли (определяемая пользователем роль БД) разрешается выполнять оператор SELECT в таблице Customer. Любой член роли SalesManagers сможет предоставлять разрешение на выполнение оператора SELECT для таблицы Customer. Если разрешение на выполнение оператора WITH GRANT OPTION предоставляется группе, то пользователь из этой группы, пытающийся пе редать это разрешение другому пользователю, группе или роли с оператора GRANT, должен будет использовать ключевое слово AS.

GRANT SELECT ON Customer TO SalesManagers WITH GRANT OPTION В следующем примере пользователю Joe разрешается выполнение оператора SELECT в Customer. Используя оператор GRANT, член роли SalesManagers должен указать свою принадлежность к роли с помошью ключевого слова AS. Указание к которой принадлежит пользователь, необходимо для провер ки его разрешений на выполнение действия GRANT.

GRANT SELECT ON TO Joe AS Чтобы отменить действие оператора WITH GRANT OPTION, не отменяя при этом разрешения, предоставленные учетной записи пользователя, используйте оператор GRANT OPTION FOR.

В примере отменяется действие оператора WITH GRANT OPTION для пользователя Joe, однако при этом не отменяются его разрешения доступа на ра боту с таблицей Customer. Для блокировки или отзыва разрешений доступа к объекту, которые были изначально путем использования оператора WITH GRANT OPTION, используйте ключевое слово CASCADE, блокирующее или отзывающее разрешения, предоставленные Joe другим пользователям:

GRANT OPTION FOR ON FROM Joe AS SalesManagers В следующем примере отменяется оператора WITH GRANT OPTION для пользователя Joe, а также отзываются все разрешения, предоставленные Joe дру гим пользователям:

GRANT OPTION FOR ON Customer FROM Joe CASCADE AS SalesManagers Примечание Используйте оператор WITH GRANT OPTION осторожно. Единствен ный контроль над учетными записями, которые получают разрешения доступа, будет состоять в запрете доступа или отмене разрешений на работу с объектами после того, как они будут установлены (и, возможно, после повреждения данных).

Просмотр разрешений Вы можете просматривать предоставленные разрешения доступа для объектов БД, ис пользуя системную хранимую процедуру Все пользователи БД имеют раз решение на ее выполнение.

Занятие 1 Предоставление разрешений уровня базы данных Следующий оператор выводит список всех разрешений, назначенных объектам таблицы Customer текущей БД:

EXEC Этот оператор выводит список всех разрешений на выполнение операторов и боту с объектами, которыми пользователь Joe обладает в текущей БД:

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

EXEC NULL, NULL Упражнение З. Предоставление и проверка разрешений доступа к В этом упражнении вы предоставите пользователям разрешения на работу с объектами и выполните проверку предоставленных разрешений.

Чтобы предоставить и проверить разрешения доступа к объектам Переключитесь в SQL Query Analyzer.

В меню File выберите Connect.

Откроется окно Connect To SQL Server.

3. Щелкните SQL Server Authentication.

4. В поле Login Name введите sa и щелкните ОК.

Обратите внимание, что вы подключились к БД master как пользователь sa.

5. В панели инструментов в списке БД выберите в качестве текущей БД SSEMDB.

6. В панели инструментов щелкните Load SQL Script.

Откроется окно Open Query File.

7. Откройте файл из папки 1.

Откроется сценарий Transact-SQL, который создаст новую хранимую с именем предоставит разрешение на выполнение операции EXECUTE на эту процедуру для роли создаст новое представление с име нем и предоставит разрешение на выполнение оператора SELECT в данном представлении для роли public.

8. В панели инструментов щелкните Execute Query.

Обратите внимание, что хранимая процедура была создана, а разрешения на выполнение оператора EXECUTE были предоставлены роли guest.

Обратите внимание также на то, что был создан объект и роли public предоставлены разрешения выполнять запрос SELECT в этом объекте.

9. В меню File выберите Connect.

10. Щелкните SQL Server Authentication.

П. В поле Login Name введите Ana.

12. В поле Password введите password и щелкните ОК.

Обратите что вы подключились к БД master под именем Ana.

13. Раскройте список БД в панели инструментов. Убедитесь в том, что пользователь Ana не может выбрать БД SSEMDB в качестве текущей.

Ana не является пользователем БД SSEMDB.

разрешениями SQL Server Глава 14. В панели запросов введите EXEC и в панели ин струментов щелкните Execute Query.

Обратите внимание, что пользователь Ana не может выполнять проце дуру Customer_Procedure в БД SSEMDB, несмотря на то что она не является пользователем БД SSEMDB, а разрешение выполнения оператора EXECUTE пре доставлено учетной записи пользователя guest.

В окне SQL Query Analyzer переключитесь на пользовательскую сессию sa.

16. В панели инструментов щелкните Clear Window.

17. В панели запросов введите и в панели инструментов щелкните Execute Query.

Обратите внимание, что в БД SSEMDB отсутствует пользователь guest. Поэтому Ana не имеет доступа к БД SSEMDB.

18. В панели инструментов щелкните Clear Window.

19. В панели запросов введите и в панели инструментов щел кните Execute Query.

Обратите внимание, что роли guest предоставлен доступ к БД SSEMDB.

20. В окне SQL Query Analyzer переключитесь на пользовательскую сессию Ana.

21. Выполните запрос EXEC еще раз.

Обратите внимание, что теперь пользователь Ana может выполнить хранимую про Customer_Procedure, которая отображает три поля таблицы Customer.

22. В новой строке введите SELECT * FROM 23. Выделите мышью этот новый запрос и в панели инструментов щелкните Execute Query.

Обратите внимание, что пользователь Ana может выполнять выборку данных из представления Она является пользователем guest, и разрешение на выполнение оператора SELECT было предоставлено роли public, к которой отно сится и пользователь guest.

24. В окне SQL Query Analyzer переключитесь на пользовательскую сессию sa.

25. В панели инструментов щелкните Clear Window.

26. В панели запросов введите и в панели инструментов щелк ните Execute Query.

27. Обратите внимание, что пользователю Ana предоставлен доступ к БД SSEMDB.

Переключитесь на сессию Ana в окне SQL Query Analyzer.

28. В панели инструментов щелкните Execute Query, чтобы заново выполнить оба зап роса.

Обратите внимание, что Ana больше не может выполнять хранимую процедуру хотя может выполнять выборку данных из представления Customer_Viewl. Теперь она является пользователем БД SSEMDB. Разрешение выполнения оператора EXECUTE предоставлялось только учетной записи пользо вателя guest, но не роли public.

29. Переключитесь в SQL Server Enterprise Manager.

30. Раскрыв контейнер БД SSEMDB, правой кнопкой щелкните Users и выберите Refresh.

Раскрыв контейнер БД SSEMDB, правой кнопкой щелкните Roles и выберите New Database Role.

Откроется окно Database Role Properties Ч New Role.

32. В поле Name введите SSEMDB 1 Предоставление разрешений 33. Щелкните ОК.

В правой панели появится 34. Дважды Откроется окно Database Role Properties Ч Обратите вни мание, что список пользователей, которым назначена эта определяемая телем роль БД, пуст.

35. Щелкните Add.

Откроется окно Add Role Members.

36. Выберите Ana, а затем щелкните ОК.

Обратите внимание, что пользователь Ana теперь отображается в списке членов роли 37. Щелкните Apply.

38. Щелкните Permissions.

Откроется окно Database Role Properties Ч Обратите внимание, что этой роли не предоставлены действующие разрешения.

39. Для объекта Customer_Viewl щелкните в полях-индикаторах Insert, Update и Delete.

Обратите внимание, что при этом рядом с соответствующими действиями появля ется зеленый значок, свидетельствующий о том, что этой роли предоставлены раз решения на выполнение операторов SELECT, INSERT, UPDATE и DELETE к дан ному объекту.

Для объекта 1 снова щелкните в полях-индикаторах Select, Insert, Update и Delete.

Обратите внимание, что при этом рядом с соответствующими действиями ется красный свидетельствующий о том, что этой роли будет выполнение операторов SELECT, INSERT, UPDATE и DELETE к данному 41. Щелкните ОК.

42. В окне SQL Query Analyzer переключитесь на пользовательскую сессию Ana.

В панели инструментов щелкните Execute Query.

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

44. Переключитесь в SQL Server Enterprise Manager.

45. В диалоговом окне Database Role Properties Ч выберите Ana и щелкните Remove.

46. Щелкните ОК.

В дереве консоли раскройте Stored Procedures.

48. В правой панели дважды щелкните Откроется окно Stored Procedure Ч Customer_Procedure.

49. Щелкните Permissions.

Откроется окно Object Properties Ч SSEMDB.

50. Для пользователя БД с именем Ana пометьте флажок рядом с Exec и щелкните ОК.

В диалоговом окне Stored Procedure Ч щелкните OK.

52. В окне SQL Query Analyzer переключитесь на пользовательскую сессию Ana.

53. В панели инструментов щелкните Execute Query.

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

332 SQL Server Глава 54. Переключитесь в SQL Server Enterprise Manager.

55. Щелкните контейнер Tables.

56. В правой панели дважды щелкните Customer.

Откроется окно Table Properties Ч Customer.

57. Щелкните Permissions.

Откроется окно Object Properties Ч SSEMDB.

58. Для пользователя Ana дважды щелкните флажок чтобы запретить выполне ние оператора SELECT к БД Customer, и затем щелкните ОК.

59. В диалоговом окне Table Properties Customer щелкните ОК.

60. В окне SQL Query Analyzer переключитесь на сеанс пользователя Ana.

61. В панели инструментов щелкните Execute Query.

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

62. Переключитесь в SQL Server Enterprise Manager.

63. Щелкните контейнер Roles.

64. В правой панели дважды щелкните SSEMDB_CustomRole.

Откроется окно Database Role Properties Ч 65. Щелкните Add.

Откроется окно Add Role Members.

66. Выберите имя Ana и щелкните ОК.

67. Щелкните Permissions.

Откроется окно Database Role Properties Ч SSEMDB.

68. Для объекта дважды щелкните флажок Exec, чтобы запретить выполнение оператора EXECUTE, и затем щелкните ОК.

69. Щелкните ОК.

70. В окне SQL Query Analyzer переключитесь на пользовательскую сессию В панели инструментов щелкните Execute Query.

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

72. В окне SQL Query Analyzer переключитесь на сессию 73. В панели инструментов щелкните Clear Window.

В панели запросов введите и в панели инстру ментов щелкните Execute Query.

Обратите внимание на разрешения доступа, установленные для объекта БД с име нем 75. В панели инструментов Clear Window.

76. В панели запросов введите и в панели инструментов щелкните Execute Query.

Обратите внимание на разрешения доступа, установленные для объекта БД с име нем 77. Не закрывайте окно SQL Server Manager и две пользовательских сессии в окне SQL Query Analyzer.

1 Предоставление разрешений базы данных Резюме Группам Windows, пользовательским ролям и отдельным пользователям можно на значать и блокировать разрешения на выполнение операторов и работу с объектами.

Эта возможность используется для разрешений, предоставленных или при постоянных ролей БД. Вы будете использовать эту возмож ность только для расширения или ограничения разрешений, устанавливаемых на ределенные объекты. Но, в целом, постоянные роли БД (в дополнение к роли серве ра sa) используются для предоставления разрешений на выполнение операторов. Вы можете управлять и просматривать используя SQL Server Enterprise Manager или Графический интерфейс облегчает эту задачу, а сценарии позволяют вам ограничивать разрешения доступа ко многим объектам в одном Если вы используете утилиту SQL Server Enterprise Manager, вам следует сгенерировать сценарии, позволяющие вновь воссоздавать или копировать структуру предоставленных разрешений в случае необходимости.

Занятие 2. Использование ролей приложения Помимо предоставления доступа различным пользователям и группам, а также даль нейшего определения разрешений для них, вы можете создавать роли приложений в БД со специфическими разрешениями, посредством которых пользователи получают доступ к данным SQL Server 2000. На этом занятии вы научитесь создавать роли при используя утилиту SQL Server Enterprise Manager и операторы Также вы узнаете о применении средств защиты при использовании ролей приложения.

Изучив материал этого вы сможете:

создавать роли приложения;

активировать и использовать роли приложений.

Продолжительность занятия Ч около 30 минут Роли приложений Роль приложения используется для ограничения доступа пользователей к данным SQL Server 2000 при работе с конкретным приложением (например Excel или бухгалтерскими программами). Ограничение доступа пользователей к приложению предупреждает возможность запуска пользователями некорректно составленных зап росов или получения доступа к секретной информации.

Роль приложения Ч это роль БД, которой назначены разреше ния. У роли приложения нет пользователей, и по умолчанию она неактивна. Вы не можете добавлять группы Windows NT 4.0/2000, пользователей или роли к этим ро лям. Чтобы активировать роль приложения, приложение должно базе дан ных пароль. Пароль может содержаться в коде приложения, либо он может находить ся в виде зашифрованного ключа в системном реестре или в БД SQL Server 2000.

Разрешения пользовательского доступа SQL Server 2000 посредством роли прило жения ограничиваются предоставляемыми для этой роли разрешениями. Существу ющие разрешения доступа пользователя к SQL Server 2000 (или их отсутствие) игно рируются, если доступ к SQL Server 2000 через роль приложения. К тому же роль приложения специфична по отношению к каждой БД. Это означает, что доступ к данным за пределами БД, в которой создана эта роль приложения, ограни чен разрешениями доступа, назначенными guest.

Создание ролей приложения Процесс создания роли приложения с использованием SQL Server Enterprise Manager по существу не отличается от процесса создания роли БД. В базе данных, где нужно создать роль приложения, правой кнопкой щелкните и вы берите New Database Role. В диалоговом окне Database Properties Ч New Role введите имя новой роли в поле Name, Application Role и укажите пароль в поле Password (рис.

После создания роли приложения назначьте ей разрешения, также, как предоставляли разрешения доступа для пользовательской роли Ч щелкнув кноп ку Permissions (рис.

Вы также можете создавать роль приложения, используя хранимую процедуру Transact-SQL Использование ролей Рис. 11-7. Создание роли приложения 11-8. Задание разрешений доступа для новой роли В следующем примере в текущей БД создается роль AccountingAppRole с паролем При этом разрешения доступа для роли приложения будут ны с помощью операторов GRANT, REVOKE и DENY, применяющих ся для управления разрешениями доступа пользователя, группы и пользовательской роли БД.

, и использование ролей приложения Чтобы активировать роль приложения, используйте хранимую процедуру role. Однажды активировав роль приложения, пользователь (работая с активировав шим ее приложением) может выполнять все действия, допустимые для данной роли.

Управление Server Глава В следующем примере активируется роль AccountingAppRole с использованием пароля Здесь применяется метод шифрования ODBC перед отправкой пароля SQL Server 2000.

EXEC, N Упражнение 4. Создание ролей приложения и проверка соответствующих разрешений В этом упражнении вы создадите роли приложения и проверите наличие со ответствующих разрешений.

Чтобы создать роли приложения и проверить разрешения 1. Переключитесь в SQL Server Manager.

2. В дереве консоли раскройте контейнер Databases экземпляра SQL Server по умол чанию, и затем Ч контейнер БД SSEMDB.

3. Правой кнопкой щелкните Roles и выберите New Database Role.

Откроется окно Database Role Properties Ч New Role.

4. В поле Name введите 5. Щелкните Application Role.

6. В поле Password pass и щелкните ОК.

7. В правой панели дважды щелкните NewAppRole.

Откроется окно Database Properties Ч NewAppRole.

Щелкните Permissions.

Откроется окно Database Role Properties Ч SSEMDB.

9. Для объекта БД флажок Exec для предоставления разрешений выполнения оператора EXECUTE для данной хранимой процедуры.

Для объекта БД пометьте флажок Select для предоставления раз решений выполнения оператора SELECT для данного представления и щелкните ОК.

В окне Database Role Properties Ч NewAppRole щелкните ОК.

12. В окне SQL Query Analyzer переключитесь на сеанс пользователя Ana.

13. В окне запросов выполните два запроса, чтобы убедиться, что пользователь Ana не может выполнять ни хранимую процедуру ни выборку дан ных из 14. Не завершайте сеанс пользователя Ana.

В меню File выберите Connect.

Откроется окно Connect To SQL Server.

16. Щелкните SQL Server Authentication.

17. В текстовом поле Login Name Ana.

18. В поле Password введите password и щелкните ОК.

Обратите внимание, что вы подключились к БД master под именем Ana.

19. В панели инструментов в списке БД выберите в качестве текущей БД SSEMDB.

20. В панели запросов введите EXEC, и в панели инструментов щелкните Execute Query.

Обратите внимание, что роль NewAppRole была активирована.

В панели инструментов щелкните Clear Window.

22. В панели запросов введите EXEC и в панели инструментов щелкните Execute Query.

2 ролей приложения Обратите внимание, что пользователь Ana теперь может запускать эту хранимую через приложения.

23. В панели инструментов щелкните Clear Window.

24. В панели запросов введите SELECT * FROM и в панели инстру ментов щелкните Execute Query.

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

25. В окне SQL Query Analyzer переключитесь на оригинальный сеанс пользователя Ana.

26. Выполните запросы.

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

27. Закройте окно SQL Query Analyzer. При этом роль приложения будет деактивиро вана. Не сохраняйте изменения.

Резюме Роли приложений очень полезны для ограничения доступа пользователя к отдель ным приложениям. Вы можете создавать роль приложения и предоставлять ей соот ветствующие используя утилиту SQL Server Enterprise Manager или опе раторы Transact-SQL. Затем приложение активирует роль, используя хранимую про цедуру sp_setapprole и передавая пароль. Все разрешения пользователей, работающих с использованием роли приложения, ограничены назначенными ей разрешениями.

Разрешения пользователя, работающего с приложением, в данном случае не имеют никакого значения.

разрешениями SQL Server Глава Занятие 3. Разработка стратегии предоставления доступа и назначения разрешений Теперь, когда вы познакомились с утилитами, позволяющими реализовать эффек тивную защиту данных в SQL Server 2000, вы можете разработать стратегию предос тавления доступа и назначения разрешений, которая будет реализована в вашей орга низации. На этом занятии вы со стратегиями предоставления доступа и назначения разрешений, использующими эти утилиты, а также со слабыми и силь ными сторонами каждой из стратегий в разных средах.

Изучив материал этого вы сможете:

описать доступные вам стратегии предоставления доступа и назначения разрешений;

оценить и выбрать соответствующую стратегию предоставления доступа и назначения разрешений.

Продолжительность занятия около минут Предоставление доступа администраторам Для начала нужно определить пользователей, которым вы предоставите неограничен ный доступ к SQL Server 2000. Есть несколько схем предоставления доступа. Если пользователи относятся к локальной группе SQL Server 2000 Administrators (по умол чанию администраторы домена входят в состав локальной группы Administrators), то они уже имеют неограниченный доступ, так как являются участниками роли сервера sysadmin. Если же они не относятся к этой локальной группе, вы можете выполнить одно из следующих действий:

Х добавить в локальную группу Administrators каждого пользователя по отдельности;

создать учетную запись пользователя SQL Server 2000 для каждого из пользо вателей, используя их учетную запись в системе Windows 2000, и сделать каждого из них членом роли сервера sysadmin;

Х создать общую группу 2000, объединяющую этих пользователей, и сде лать группу administrator SQL Server членом локальной группы Administrators;

Х создать глобальную группу Windows 2000, объединяющую этих пользователей, со здать учетную запись пользователя для этой группы, а затем сделать эту учетную запись членом роли сервера sysadmin.

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

Используя группы Windows, вы можете предоставить пользователю доступ в качестве администратора, всего лишь добавив его в данную группу Windows.

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

Занятие 3 стратегии и назначения разрешений Использование групп Windows и ролей SQL Server Если есть пользователи, которым необходимо предоставить разрешения админист рирования SQL Server 2000, но вы не хотите предоставлять им неограниченный дос туп, используйте комбинации роли сервера для предоставления им достаточных раз решений. Продумайте, в какие встроенные группы и новые группы Windows нужно включить этих пользователей, и сделайте эти группы Windows участниками соответ ролей SQL Server 2000, чтобы облегчить задачи администрирования. По мните, что добавление пользователя или группы к роли сервера автоматически обес печивает им доступ к SQL Server 2000. Также помните, что для добавления ной группы лучше использовать название группы BUILTIN, чем имя домена или ком пьютера.

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

Затем предоставьте доступ тем из пользователей Windows, которые нуждаются в доступе к SQL Server 2000. Продумайте создание и предоставление доступа пользова телей к отдельной группе Windows 2000, которая будет содержать всех пользователей Windows 2000, доступ к SQL Server 2000. Также обдумайте создание второй группы Windows 2000, которая будет содержать всех пользователей, которым было отказано в доступе к SQL Server 2000 в индивидуальном порядке. Создайте пользова тельское имя для этой группы Windows 2000 и установите соответствующий запрет на доступ для членов данной группы. Использование только этих двух групп позволит вам быстро предоставлять или отменять какие-либо разрешения доступа к серверам SQL Server 2000 для пользователей Windows.

Предоставление доступа к БД Прежде всего, если пользователь будет нести ответственность за отдельную БД, сде лайте его ее владельцем. Затем создайте пользовательские учетные записи в БД для пользователей, которым требуется доступ к ней. Если вы используете утилиту SQL Server Enterprise Manager, то можете добавлять только тех пользователей, которые име ют учетные записи пользователей SQL Server 2000. Если вы используете операторы Transact-SQL, то можете добавить любого пользователя или группу Windows 2000.

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

Использование фиксированных ролей БД для доступа администраторов сервера Добавьте пользователей и группы Windows, а также имена пользователей SQL Server (если они есть) к постоянным ролям БД, чтобы обеспечить разрешения с целью выполнения специфических задач. Создайте соответствующие группы Windows и включите их в постоянные роли БД.

Server Глава Если вы планируете использовать определенные фиксированные роли БД во всех новых БД, добавьте эти роли в БД model и затем добавьте в их состав нужных пользо вателей. Например, вы можете создать группу пользователей Windows, выполняющую функции зашиты данных (security operators) и затем добавить ее к постоянной роди БД model. При этом каждая новая БД будет включать роль админи стратора защиты в которую автоматически добавляется эта группа Windows.

Предоставление к данным Существует несколько уровней доступа к данным, и этот факт следует иметь в виду при предоставлении пользователям доступа. определитесь, хотите ли вы предоставить пользовательский доступ к БД. Вы можете создать учетную запись пользователя guest в БД и предоставить ему ограниченные разрешения для просмотра определенных таблиц, представлений, полей и хранимых У вас нет спосо бов проверки активности пользователей, зарегистрировавшихся под име нем guest, потому что пользователь не имеет доступа к БД через свою личную учет ную запись (хотя вы можете проверить действия пользователя guest), Некоторые раз решения, предоставленные учетной записи пользователя guest или отмененные для нее, не влияют на всех зарегистрированных пользователей, которым предоставлены разрешения.

Во-вторых, определите разрешения доступа к данным, которые требуются для всех зарегистрированных в БД пользователей. Предоставьте эти разрешения роли public.

Благодаря этому вы сможете предоставлять соответствующие разрешения одним дей ствием (нужно лишь предоставить соответствующие разрешения группе public), что упростит задачи администрирования, Все зарегистрированные пользователи получа ют эти разрешения по умолчанию при подключении к БД.

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

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

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

Х Если пользователям или группам требуется доступ к большинству (но не ко всем) таблицам, представлениям и функциям, вы можете добавить каждого пользовате ля или группу к постоянной роли БД и/или а затем в индивидуальном порядке запретить каждому из этих пользователей или групп до ступ к отдельным объектам.

3 Разработка стратегии предоставления доступа к разрешений * Если большинству пользователей или групп требуется доступ к большинству (но не ко всем) представлениям и функциям, вы можете добавить каждого из этих пользователей или групп к постоянным ролям БД и/или а затем добавить каждого из этих пользователей или групп к посто янной определяемой пользователем роли БД, запретив доступ к объектам для этой роли. Если при этом вы используете имена пользователей SQL Server и Windows, это позволит вам локализовать все необходимые разрешения в одной роли, а затем просто добавлять и удалять пользователей, Примечание Вы не можете использовать фиксированные роли БД и для предоставления разрешения выполнить оператор EXECUTE.

И наконец, если вам нужно ограничить доступ к отдельным полям таблиц, использовать представления или хранимые процедуры. В результате, как правило, повышается производительность Резюме SQL Server 2000 обеспечивает множество способов защиты данных. Выбор наиболее подходящего метода для вашей среды зависит от полного понимания возможностей Windows NT 4.0/2000 и SQL Server 2000. Выбирайте такую стратегию предоставления доступа и назначения которая позволит вам достичь максимально эф фективной защиты, выполняя при этом минимум необходимых действий. Это упрос тит задачу управления разрешениями а также облегчит устранение проблем, связанных с защитой данных, если таковые когда-либо возникнут.

342 Управление разрешениями SQL Закрепление материала 7 J Приведенные ниже вопросы помогут вам лучше усвоить основные темы дан ной главы. Если вы не сумеете ответить на вопрос, повторите материал соот ветствующего занятия. Правильные ответы приведены в приложении Воп росы и ответы в конце книги.

Вы создали группу безопасности Windows 2000 для пользователей БД SalesRepor ting в системе SQL Server 2000 и поместили менеджеров по продажам в эту группу.

Затем вы предоставили этой группе доступ к SQL Server 2000 и БД Кроме того, вы включили эту в постоянную роль БД и db_da tareader. Некоторые пользователи пожаловались, что, несмотря на наличие у них доступа к данным в каждой таблице и представлении БД, они могут выполнять не все хранимые процедуры, а только часть из них. Выяснилось также и то, что один из пользователей данной группы может выполнять все хранимые процедуры. Ка ковы вероятные причины этой проблемы?

2. Вам нужно предоставить определенным пользователям возможность добавлять новые данные в БД с высокой степенью зашиты. При этом также требуется весьма сильно ограничить разрешения пользователей на поиск данных. Вы заботитесь о безопасности этих данных. Какой наиболее безопасный способ вы можете исполь зовать, чтобы разрешить пользователям выполнять из задачи?

3. Вы разрабатываете систему защиты для своего экземпляра SQL Server 2000. Вы предоставили доступ к нему только пользователям и группам Windows 2000. Есть ли какое-либо преимущество предоставлении разрешений определяемым зователями группам БД по с прямым предоставлением разрешений до ступа группам Windows?

Администрирование SQL Server Занятие Изменение параметров конфигурации 2, Настройка дополнительных компонентов 3. Обслуживание SQL Server 2000 В этой главе Здесь вы узнаете, как настраивать параметры конфигурации, устанавливать и обслу живать SQL Server 2000. Вы будете задавать конфигурацию Windows, служб SQL Server и Server Agent, а также SQL Server Enterprise Manager. Вы сможете расширить воз можности системы SQL Server 2000 с SQL Mail и связанных а также благодаря поддержке XML. И наконец, вы научитесь обеспечивать необходимую поддержку БД.

Прежде всего Для изучения материалов этой главы вам потребуются:

Х компьютер, соответствующий минимальным аппаратным требованиям, перечис ленным в главе 2;

Х ОС Microsoft Windows 2000 Server, установленная на разделе диска с файловой системой NTFS;

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

SQL Server Глава Изменение параметров конфигурации На этом занятии вы познакомитесь с различными параметрами конфигурации dows, служб SQL Server и Server Agent, SQL Server Enterprise Manager и узнаете, когда их следует использовать. Для многих сред изменение этих параметров если и требует ся, то незначительное.

Изучив материал этого вы сможете:

проверить, имеет ли Windows 2000 нужную конфигурацию, оптимальную SQL Server 2000;

сконфигурировать службы SQL Server и SQL Server Agent;

зарегистрировать экземпляры SQL Server в SQL Server Enterprise Manager;

просмотреть информацию о зарегистрированных серверах с помощью SQL Server Enterprise и открыть к ней доступ.

Продолжительность Ч около 45 минут Конфигурирование Windows NT 4.0/ Подробное обсуждение оптимизации сервера Windows NT 4.0/2000 для достижения наивысшей производительности выходит за рамки этой книги. Однако три пара метра операционной системы, на производительность SQL Server 2000, которые вам, возможно, потребуется настроить.

Максимизация пропускной способности сети установке SQL Server 2000 на любом сервере Windows NT 4.0/2000, программа установки автоматически систему на максимальную пропускную способ ность для сетевых приложений (если это еще не сделано), что позволяет приложени ям, кэшируюшим память (например SQL Server 2000) наиболее эффективно исполь зовать память сервера.

Рис. Проверка параметров пропускной способности в Windows Изменение настройки можно просмотреть только при помощи параметра Show Advanced Options.

Для динамически настраиваемых параметров указываются нулевые значения. Если вы изменили какой-либо параметр с хранимой процедуры выполните оператор RECONFIGURE или перезапустите службу SQL Server, чтобы система начала использовать новое значение параметра. Если вы изменили параметр с помощью Server Enterprise Manager, система выдаст запрос на перезапуск SQL Server, чтобы изменения вступили в силу.

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

Соединения Чтобы изменить параметры пользовательского соединения с SQL Server Enterprise Manager, щелкните правой кнопкой щелкните Pro perties и в диалоговом окне SQL Server Properties (Configure) перейдите на вкладку Connections. Вы также можете выбрать SQL Server Configuration Properties в меню Tools и перейти на вкладку Connections (рис. 12-4).

Рис. 12-4. Изменение параметров настройки клиентского соединения В табл. описаны параметры пользовательского соединения, при этом исполь зуются названия, определяемые В интерфейсе SQL Server Enterprise Manager используются более, понятные описательные названия параметров.

SQL Server Табл. 12-1. Параметры соединения параметра Описание Использование Определяет число пользователей, Используется, чтобы не connections которые одновременно перегружать SQL Server подключиться к SQL Server параллельными соединениями 2000. число разрешенных пользовательских соединений зависит от версии SQL Server 2000, которую вы используете, и от ограничений приложений и аппаратного обеспечения. По умолчанию это значение изменяется динамически User options параметры обработ- Используется, чтобы ки для всех пользова- установить значения тельских устанавли- глобальных параметров ваемые по умолчанию. Не имеет обработки запросов для значений параметров по умол- клиентских соединений чанию по умолчанию Remote access Разрешает или запрещает уда- Используется, чтобы ленный доступ с защитить сервер и запретить удаленных хранимых процедур. удаленный доступ По умолчанию удаленный доступ разрешен Remote proc trans Требует использования MS DTC Применяется в распределен при распределенных ных транзакциях при исполь чтобы обезопасить процесс зовании MS DTC, чтобы процедур на нес- сохранить свойства ACID кольких серверах. По умолчанию (атомарность, согласован MS DTC использовать не тре- ность, изоляцию, устойчи буется вость) Remote query timeout Определяет время ожидания Используется для того, чтобы удаленного запроса SQL установить время ожидания Server 2000. По умолчанию Ч удаленного запроса 600 сек. (10 мин.) База данных Чтобы изменить параметры настройки БД с помошью SQL Server Enterprise Manager, в дереве консоли щелкните правой кнопкой имя нужного экземпляра, выберите Properties и в открывшемся диалоговом окне SQL Server Properties (Configure) перей дите на вкладку Database Settings 12-5).

В табл. 12-2 описаны параметры настройки БД, используемые системной храни мой процедурой С помощью SQL Server Enterprise Manager вы также можете определить папку файлов данных и журнала по умолчанию на вкладке Data base Settings диалогового окна SQL Server Properties (Configure).

1 Изменение конфигурации Рис. 12-5. Изменение параметров настройки БД Табл. 12-2. Параметры настройки БД Название параметра Описание Fill factor Определяет процент заполнения Задает значение, чтобы страницы индекса при создании минимизировать расщепле нового индекса на основе ние страниц индекса.

данных. Коэффициент заполнения По умолчанию при создании для таблицы, доступной любой страницы кластерного только для чтения, к которой или некластерного индекса данные не добавляются, SQL Server 2000 заполняет ее, равен 100% оставляя лишь небольшое место для дополнительных данных до расщепления страницы Media retention Определяет срок хранения Задает срок хранения всех каждой резервной копии. наборов резервных копий По умолчанию равен О Используется, чтобы Recovery interval Задает время завершения операции автоматического мерно распределить операции восстановления (в минутах), записи на жесткий диск тем самым определяя частоту во времени и избежать запуска процесса контрольной грузки системы точки. По умолчанию опреде ляется динамически в зависи мости от частоты изменения данных и свободного простран ства журнала транзакций Администрирование SQL Память Чтобы изменить параметры конфигурации памяти с помощью SQL Server Enterprise Manager, в дереве консоли правой кнопкой имя экземпляра, выберите Properties и в раскрывшемся диалоговом окне Server Properties (Configure) пе рейдите на вкладку Memory (рис.

12-6. конфигурации памяти В табл. 12.3 описаны параметры конфигурации памяти, используемые системной хранимой процедурой Табл. 12-3. Параметры Название параметра Описание Max server memory Определяет максимальный чтобы ограни размер которую SQL чить размер Server 2000 может использовать памяти и предоставить ее для буферного пула. другим серверным По умолчанию память приложениям распределяется динамически Min server memory Определяет минимальный Используется, чтобы устано размер памяти, используемый вить минимальное значение SQL Server 2000 для буферного памяти на компьютере, не пула отведенном специально для SQL Server 2000, чтобы он получал больше ресурсов Set working set size Устанавливает дополнительный Используется, чтобы объем физической памяти для Windows 2000 не отдавал SQL Server 2000. Используется страницы другим серверным с параметрами настройки мини- приложениям (независимо мальной и максимальной памя- от того, сколько им нужно ти сервера. По умолчанию значе- памяти и насколько занят ние этого параметра равно О SQL Server 2000) 1 Изменение Табл. 12-3.

параметра Описание Использование memory query Определяет минимальный Используется, чтобы увели объем памяти (в килобайтах), производительность предоставляемой каждому при выполнении небольших запросу. По умолчанию запросов определяется динамически SQL Server 2000 автоматически распределяет и освобождает память в буфере кэша, чтобы повысить производительность. Это зависит от объема памяти, используемой SQL Server 2000 и запрашиваемой другими серверными приложениями. Если вся до ступная физическая память уже передана серверному приложению, он обращается к циклам процессора, чтобы перераспределить память между приложениями. Чтобы что физическая память доступна всем приложениям, работающим в дан ный момент на вашем компьютере с Windows, вы можете жестко задать минималь ный и максимальный объем памяти. В этом случае SQL Server 2000 будет динамичес ки распределять память в пределах между минимальным и максимальным объемом.

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

Если на компьютере выполняется только SQL Server 2000, установите равные боль шие значения минимального и максимального объема памяти и размера рабочего про странства Ч это может немного повысить производительность. В этом случае память будет выделяться прежде всего SQL Server 2000, а оставшаяся Ч между остальными приложениями. Другие серверные приложения не смогут выполнять перераспреде ление памяти.

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

Процессор Чтобы изменить параметры конфигурации процессора с помощью SQL Server prise Manager, в дереве консоли правой кнопкой нужный экземпляр ра, выберите Properties и в открывшемся диалоговом окне SQL Server Properties перейдите на вкладку Processor (рис. 12-7).

В табл. 12-4 перечислены параметры настройки используемые сис темной хранимой 352 SQL Server Рис. 12-7. Настройка производительности процессора Табл. 12-4. Параметры настройки процессора Название параметра Описание Использование Affinity mask Исключает процессор в много- Чтобы отключить потоки SQL процессорной системе из Server 2000 от процессоров обработки потоков SQL Server со рабочей 2000. По умолчанию обработка нагрузкой Windows потоков SQL Server распределяется между всеми процессорами Cost threshold for Определяет короткие и Применяется в многопроцес parallelism планы выполнения запросов. сорных системах при чрезмер С помощью этого параметра ном переключении контекстов SQL Server 2000 или при постоянной когда ему следует переходить большой нагрузке к параллельному выполнению запросов. Значение по умолчанию Ч Lightweight pooling Влияет на волокон Применяется в в потоках (режим планирования сорных системах при чрезмер волокон) или на планирование ном переключении контекстов потоков при выполнении заданий. или при постоянной По умолчанию большой нагрузке режим планирования потоков Priority boost Определяет приоритет планиро- Применяется, чтобы вания для процессора в SQL приоритет планирования на Server 2000. По умолчанию компьютере, предназначенном установлен обычный только для SQL Server приоритет и имеющем не сколько процессоров Занятие 1 Изменение конфигурации Табл. 12-4. (окончание) Название параметра Описание Использование Max degree of Устанавливает число Применяется, чтобы parallelism ров, параллельно запретить генерацию план. По умолчанию равно параллельного плана числу процессоров на компьютере Max worker threads Определяет число рабочих Значение этого параметра потоков, доступных процессам нужно SQL Server 2000. По умолчанию повысить производительность равно 255 системы с малым числом пользовательских подключений Сервер Чтобы изменить параметры настройки сервера с помощью SQL Server Enterprise Manager, в дереве консоли щелкните правой кнопкой имя нужного экземпляра SQL Server, выберите Properties и в открывшемся диалоговом окне SQL Server Properties (Configure) перейдите на вкладку Server Settings (рис. 12.8).

PI I Рис. 12-8. Изменение параметров настройки сервера В табл. 12-5 перечислены параметры настройки сервера, используемые системной хранимой процедурой С помощью SQL Server Enterprise Manager вы также можете установить язык, ко торый будет использоваться по умолчанию для серверных сообщений, и определить имя профиля электронной почты, которое будет использоваться для сеанса электрон ной почты. Для этого перейдите на Mail profile диалогового окна SQL Properties (Configure). Подробнее о настройке SQLAgentMail и SQL Mail Ч в 2.

SQL Server Глава Табл. 12-5. Параметры настройки сервера Название параметра Описание Использование Allow updates Определяет, можно ли напрямую Используется только по обновлять системные таблицы. указанию Microsoft Если это запрещено, пользова- Product Support Services тель не может непосредственно изменять таблицы, даже если данное право было ему тавлено с помощью оператора GRANT. По умолчанию обнов лять таблицы нельзя Nested triggers Контролирует использование Используется, чтобы каскадных триггеров. Макси- запретить применение мально допустимый уровень каскадных триггеров вложенности Ч 32. По умолча нию использование каскадных триггеров разрешено governor Определяет время обработки Используется, чтобы избежать cost limit запроса (в По умолча- незавершающихся запросов нию время обработки не ограничено Two-digit Определяет две предыдущие Используется, чтобы цифры при использовании согласовать данные, исполь только последних в зуемые SQL Server записи года, По умолчанию и клиентскими приложениями равно 2049, это что 49 интерпретируется как 2049 а 50 Ч как 1950 год.

Значение по умолчанию для объектов Ч Интеграция с Directory Если вы установили SQL Server в среде Windows 2000 Active Directory, то можете зарегистрировать свой экземпляр Server в Active Directory. При этом вы добавите объект MS-SQL-SQLServer в качестве объекта Service Connection Point (SCP) для того компьютера, на котором установлен SQL Server 2000. Объекту SCP доступны все се тевые объекте MS-SQL-SQLServer хранится информация о службе SQL Server, например информация о Пользователи и приложения могут искать в Active Directory информацию об экземплярах SQL Server 2000. зарегистриро ванных в сети.

Регистрацию выполняет служба которая автоматически запускается при необходимости системами SQL Server или Analysis Manager, а затем останавливается после выполнения задачи. Эта служба также проверяет, что пользо ватели домена SQL Server имеют право обновлять объекты Active Directory, а также информацию о БД и репликации. Чтобы зарегистрировать систему или БД в Active Directory (или отменить регистрацию), учетная запись пользователя должна быть чле параметров ном локальных групп Windows NT 4.0/2000 Administrators или Power Users ра, установлен SQL Server 2000.

Чтобы зарегистрировать экземпляр SQL Server 2000 (или отменить регистрацию), вы можете воспользоваться SQL Server Enterprise Manager или системной хранимой процедурой Если вы используете SQL Server Enterprise Mana ger, в дереве консоли щелкните правой кнопкой имя нужного экземпляра, выберите Properties и в открывшемся диалоговом окне SQL Server Properties (Configure) переи дите на вкладку Active Directory. Если вы хотите зарегистрировать экземпляр SQL Server 2000, щелкните кнопку Add, если хотите отменить регистрацию Ч кнопку Remove (рис. 12-9).

Рис. 12-9. SQL Server 2000 в Active Directory Теперь вы можете зарегистрировать любую БД с помощью SQL Server Enterprise Manager или системной хранимой процедуры Если вы исполь зуете SQL Server Enterprise Manager, щелкните правой кнопкой имя БД, которую хо тите выберите Properties и в диалоговом окне Properties перейдите на вкладку Options. Если вы зарегистрировали экземпляр сервера в Active Directory, на этой вкладке вы увидите группу Active Directory. Чтобы просмотреть список БД, зарегистрированных в Active Directory, пометьте флажок List This Database In Active Directory (рис. 12-10). Если ваш экземпляр сервера не зарегистрирован, группа Directory не будет отображается.

Глава SQL Рис. 12-10. Регистрация БД в Active Directory Конфигурирование учетной записи службы Службы SQL Server и SQL Server могут использовать доменную или локальную учетную запись. Чтобы выполнять какие-либо действия и обмениваться данными между серверами, эти службы должны работать под доменной учетной записью. Хотя использование доменной учетной записи не требует особых прав, некоторые права позволят расширить SQL Server 2000.

Табл. 12-6. Права, необходимые для увеличения функциональности SQL Server Служба Права Функциональность SQL Server Работает как часть опера- Пользователь, не являющийся участни ционной системы и изме- ком роли может выполнять няет маркер уровня операционной системы Х SQL Server Член локальных Публиковать и управлять объектами Power Users и Administrators SQL Server 2000 в Active Directory SQL Server Agent Член локальной группы Пользователи, не к роли Administrators sysadmin, могут назначать задания операционной системе и Active Script SQL Server Agent Член Настраивать систему таким образом, Administrators чтобы выполнялся автоматический перезапуск службы SQL Server Agent при ее непредвиденной остановке SQL Server Agent Член локальной 1руппы Конфигурировать службу SQL Server Agent Administrators так, чтобы она отправляла задания, когда процессор не занят Если вашему экземпляру SQL Server 2000 необходима функциональность из табл.

12-6, проверьте, имеет ли доменная учетная запись службы эти права, или исполь 1 Изменение конфигурации зуйте локальную учетную запись (она имеет все локальные права). Подробнее о до полнительных возможностях SQL Server 2000 Ч далее в этой главе, а также в главе Конфигурирование службы SQL Server Agent Вы можете настроить параметры службы SQL Server Agent с помощью SQL Server Enterprise Manager.

Основные параметры Чтобы настроить основные параметры SQL Server Agent, в дереве консоли раскройте Management, щелкните правой кнопкой SQL Server Agent и выберите Properties. В алоговом окне SQL Server Agent Properties вы можете просмотреть общие свойства этой службы Рис. 12-11. Настройка основных параметров для службы SQL Server Agent На вкладке General вы можете указать путь к журналу ошибок, разрешить запись со общений при трассировке (это поможет на этапе отладки), а также выбрать файла журнала ошибок, отличный от Unicode, чтобы уменьшить размер этого файла.

Запись сообщений при выполнении операторов и трассировке может значительно увеличить размер файлов. Вы можете указать сетевое имя компьютера, назначенного в качестве получателя сообщений, отправляемых с помощью команды net send и уве домляющих об ошибках, зарегистрированных SQL Server Agent. О параметрах отправ ки почтовых сообщений и настройке электронной почты для службы SQL Server Agent Ч в главе 2.

Дополнительные параметры Определить дополнительные параметры службы SQL Server Agent можно на вкладке Advanced диалогового окна SQL Server Agent Properties (рис. 12-12).

Здесь вы можете разрешить автоматический перезапуск службы SQL Server в случае ее непредвиденной остановки, пометив флажок Auto Restart SQL Server Age If It Stops Unexpectedly. Чтобы использовать эту возможность, учетная запись службы SQL Server Agent должна обладать правами администратора в локальной системе (эти права служба SQL Server Agent может получить через учетную запись пользователя SQL домена или учетную запись локальной системы). По умолчанию в SQL Server исполь зуется автоматический перезапуск.

Рис. Настройка дополнительных параметров службы SQL Server Agent В группе элементов управления SQL Server Event Forwarding вы можете настроить службу SQL Server так, чтобы уведомления обо всех или некоторых событиях SQL Server отправлялись на другой сервер. Вы можете использовать эту чтобы разрешить централизованное управление оповещением для групп серверов.

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

В группе Idle CPU Condition вы можете определить нижний порог загруженности процессора. В 13 вы научитесь создавать которые запускает служба SQL Server Agent при недостаточной загруженности Для определения загру женности процессора на сколько процентов ниже среднего уровня умень шается нагрузка процессора за определенный интервал времени. Чтобы использовать эту возможность, учетная запись службы SQL Server Agent должна обладать правами администратора локальной системы (эти права служба SQL Server Agent может полу чить через локальную или доменную учетную запись).

Свойства соединения Настроить свойства соединения службы SQL Server Agent можно на вкладке Con nection диалогового окна SQL Server Agent Properties (рис.

По умолчанию служба SQL Server Agent устанавливает соединение с локальным экземпляром SQL Server 2000, используя учетную запись пользователя домена, со зданную для этой службы. При помощи элементов управления в группе SQL Server Connection вы можете сконфигурировать эту службу так, чтобы все соединения с ло кальным экземпляром осуществлялись через учетные записи пользователей SQL Server Ч участников роли sysadmin. Вы также можете установить максимальное вре мя ожидания ответа для каждой сессии (по умолчанию Ч 30 секунд). Если вы изме нили параметры настройки клиентских сетевых библиотек Net-Libraries, то, возмож и но, вам придется указать псевдоним SQL Server, который вы создали ранее с утилиты Client Network Utility.

Рис. 12-13. Настройка свойств соединения SQL Server Регистрация экземпляра SQL Server в SQL Server Enterprise Manager Чтобы администрировать и управлять работой различных экземпляров SQL Server 7.0/ 2000 из SQL Server Enterprise Manager, их нужно зарегистрировать. При этом димо указать имя сервера, имя экземпляра (если используется), метод проверки подлинности пользователей, информацию об учетной записи при использовании про верки подлинности SQL Server и имя логической группы серверов SQL Server Enter prise Manager. Вы можете зарегистрировать экземпляр сервера с помошью мастера или непосредственно при помощи SQL Server Enterprise Manager.

Регистрация с помощью мастера Register SQL Server Wizard Вы можете вызвать мастер Register SQL Server Wizard, выбрав Wizards в меню Tools или щелкнув правой кнопкой группу серверов или один из зарегистрированных эк SQL Server и выбрав New SQL Server Registration (рис. 12-14).

Вы можете отказаться от использования мастера Register SQL Server Wizard, поме тив флажок From Now On, I Want To Perform This Task Without Using A Wizard в ок не Welcome To The Register SQL Server Wizard. Если вы отменили использование масте ра, то вызвать его можно только выбрав Wizards в меню Tools. Щелкните Next и в окне Select A SQL Server вы увидите список всех серверов в сети. Выберите экземп ляр, который хотите зарегистрировать (рис. 12-15);

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

Щелкните чтобы указать способ проверки подлинности при подключении к каждому экземпляров в окне Select An Authentication Mode, для всех выбранных экземпляров вы можете выбрать один режим (рис. 12-16). Позже вы сможете отдель но сконфигурировать параметры соединения для отдельного экземпляра SQL Server с помощью мастера Register SQL Server Wizard.

Глава SQL Server to the SQL Server Wizard helps you register в SQL wizard you Рис. 12-14. Окно мастера Register SQL Server Wizard S or type of or Рис. 12-15. Выбор регистрируемого экземпляра SQL Server Select mode you to to SOL Рис. 12-16. Выбор способа проверки подлинности для регистрируемого сервера Если вы выбрали режим проверки подлинности SQL Server, вам придется дополнительную о соединении в окне Select Connection Option. Вы жете настроить параметры соединения так, чтобы SQL Server Enterprise Manager ис пользовал учетную запись пользователя SQL Server каждый раз при подключении к любому из этих экземпляров. Вы можете также указать, чтобы SQL Server Enterprise Manager запрашивал у вас параметры учетной записи при подключении к любому из экземпляров. Это полезно, если несколько пользователей регистрируются в системе под разными учетными записями SQL Server и имеют различные права на разных земплярах SQL Server (рис. 12-17).

Connection When you using account you can you or each i Рис. 12-17. Выбор параметров подключения для регистрируемых серверов В окне Select SQL Server Group добавьте регистрируемые экземпляры к ющим группам серверов в контейнере Management или в группу верхнего уров ня 12-18).

Select SQL Group Specify to SOL you ate SQL в SOL Рис. 12-18. Выбор логической группы для регистрируемого сервера Переключитесь в окно The Register SQL Server Wizard. На этом этапе мастер SQL Server Wizard проверяет, что вы можете подключиться к выбран ным экземплярам SQL Server с указанным режимом проверки именем и паролем (рис. 12-19).

Администрирование SQL Completing ttm Register SQL Wizard take fa < and Рис. 12-19. Проверка подключения к серверам Если мастер не может подключиться к какому-то из экземпляров, выберите этот экземпляр и измените данные, используемые при подключении (рис. 12-20).

Рис. 12-20. Ввод регистрационных реквизитов, используемых для подключения к отдельным экземплярам Если подключиться не удается, вы можете зарегистрировать экземпляр сервера без проверки о подключении. Это полезно, если учетная запись еще не со здана или сервер в данный момент остановлен (рис. 12-21).

s to Рис. 12-21. Регистрация без проверки информации 1 Изменение Регистрация с помощью SQL Server Enterprise Manager Чтобы зарегистрировать экземпляр сервера непосредственно с помощью SQL Server Enterprise Manager, щелкните правой кнопкой группу SQL Server или зарегистриро ванный экземпляр сервера и выберите New SQL Server Registration. Если вы еще не запретили использование мастера Register SQL Server Wizard, то в окне Welcome To The SQL Server Wizard пометьте флажок From Now On, I Want To Perform This Task Without Using A Wizard (рис. 12-22). Щелкните Next.

to the Register SQL Wizard Х Х Select mode Х a SQL Рис. 12-22. Регистрация без мастера Register SQL Server Wizard В окне Registered SQL Server Properties вы можете зарегистрировать экземпляр сер вера, указав все свойства, о которых уже говорилось ранее (рис. 12-23). Вы также можете изменить следующие значения по умолчанию для регистрируемой или уже зарегистрированной системы:

Х отображать состояние СУБД SQL Server (запущена или нет);

Х отображать системные БД и объекты;

Х автоматически запускать SQL Server, когда SQL Server Enterprise Manager пытает ся подключиться к ней.

Рис. 12-23. свойств системы SQL Server Server Совместный доступ к информации о зарегистрированных серверах По умолчанию информация о зарегистрированных серверах представляется в кон тейнере Management дерева консоли SQL Server Enterprise Manager непосредственно тому пользователю, который выполнил регистрацию. Например, если один систем ный администратор зарегистрировал 15 разных экземпляров SQL Server и к тому же компьютеру подключился другой системный администратор (с использованием учет ной записи пользователя то второй администратор не увидит 15 экземпля ров SQL Server в списке зарегистрированных серверов.

Однако администратор может разрешить совместный доступ к этой информации (на том же или на другом компьютере). Такая возможность пригодится в том случае, если несколько администраторов управляют системой с одного компьютера, а также когда необходимо консолидировать информацию обо всех зарегистрированных сер верах. Это позволяет администраторам использовать одну и системную конфи гурацию вне зависимости от того, на каком компьютере они работают в данный мо мент. Чтобы использовать эту возможность, администратор, запускаюший SQL Server Enterprise должен быть членом локальной группы Administrators компьюте ра, где находится централизованное хранилище информации о серверах, и локального компьютера.

Чтобы разрешить доступ к информации о зарегистрированный сер верах, в меню Tools выберите Options и в диалоговом окне SQL Server Enterprise Manager Properties снимите флажок Read/Store User Independent (рис. 12-24).

Чтобы просмотреть информацию о зарегистрированном сервере с удаленного ком пьютера (который предоставляет такую возможность, то есть где флажок Read/Store User Independent не помечен), установите переключатель Read From Remote и в поле Server Name введите имя сервера, где находится централизованное ин формации о зарегистрированных серверах.

Рис. 12-24. Настройка совместного доступа к информации о зарегистрированный серверах Занятие 1 параметров конфигурации Резюме Программа установки SQL Server 2000 позволяет оптимизировать конфигурацию Windows под требования SQL Server 2000. Однако необходимо проверить, что диски, содержащие файлы данных и файлы журнала транзакций, не используются для под качки Служба SQL Server Ч самонастраивающаяся. В то время как ручная настройка некоторых параметров в отдельных случаях может сить производительность, некорректная настройка службы SQL Server скажется на производительности отрицательно. Для выполнения некоторых специальных функ ций, расширить права учетных записей служб SQL Server и SQL Server И наконец, чтобы разрешить использование специальных функций (например опре делить уровень загруженности, простою процессора), нужно на строить специальные свойства службы SQL Server Agent.

Server 2. Настройка дополнительных компонентов SQL Server 2000 может получать и отправлять уведомления по почте, отправлять уведомления на пейджеры, подключаться к удаленным серверам для вы полнения распределенных запросов, а также предоставляет возможности интеграции с IIS для поддержки XML. Чтобы использовать эти возможности, нужно установить и настроить компоненты. На этом занятии вы научитесь устанавли вать и SQL Mail, устанавливать связанные серверы для выполнения распределенных запросов и удаленных хранимых создавать ODBC-источ ники данных для ODBC-клиентов и настраивать IIS для доступа к SQL Server 2000 по протоколу HTTP.

Изучив материал этого занятия, вы сможете:

настроить SQLAgentMail и SQL Mail;

настроить связанные серверы;

создать ODBC-источник данных SQL Server;

настроить виртуальный каталог IIS, чтобы разрешить доступ к SQL Server 2000 с использованием XML.

Продолжительность занятия Ч около 45 минут Настройка SQLAgentMail и SQL Mail SQL Server 2000 может подключаться к серверам Microsoft Exchange Server, Microsoft Windows или РОРЗ (Post Office Protocol 3), чтобы получать и отправлять сооб с помощью двух служб: и SQL Mail. Для их работы необходимо клиентское приложение MAPI, например Microsoft Outlook, на локальном компью тере SQL Server 2000 и профиль почтовой службы MAPI. Профиль почтовой службы MAPI требует указания учетной записи пользователя домена. Обычно SQLAgentMail и SQL Mail используют одну учетную запись для удобства администратора.

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

В следующем примере с системной хранимой процедуры xp_sendmail пользователю Gloria отправляются электронное с данными о производи тельности. Можно запланировать периодическую отправку такого сообщения:

EXEC, -, - * FROM Электронное сообщение, отправляемого пользователю, может содержать следую щие сведения:

* результат выполнения запроса;

Х строка сообщения;

Занятие 2 дополнительных компонентов Х оператор или пакет операторов для выполнения;

Х сообщения для пейджера.

Для обработки сообщений, отправленных учетной записи пользователя домена, используемой службой Server, данная служба использует системную хранимую процедуру или расширенные системные хранимые процедуры xp_readmaii и Эти обычно содержат оператор или пакет операторов Transact-SQL, при этом отправляется ответное сообщение, где со держится результат их выполнения. Копия ответного может также отправ ляться определенному числу пользователей, имена которых указаны в списке в поле СС. К примеру, администратор может выполнить системную хранимую процедуру, которая возвращает текущее состояние сервера, и получить ответ по электронной почте.

Создавайте планируемые задания для автоматической периодической обработки электронной почты.

Ч это почтовая служба, используемая SQL Server Agent. При запуске SQL Server Agent устанавливает почтовую сессию (для этого ее необходимо предвари тельно настроить с помощью SQL Server Enterprise Manager) и рассылает электрон ные сообщения или сообщения на пейджер пользователям, которые должны полу чать об определенных системных событиях, а также о выполнении или невыполнении определенных задач. Об оповещениях о системных событиях и резуль татах выполнения задач Ч в главе 13.

Настройка профиля почтовой службы Службы SQL Mail и SQLAgentMail требуют, чтобы на локальном компьютере SQL Server 2000 был установлен клиент MAPI, например Microsoft Outlook. Затем вы дол жны создать профиль службы электронной почты (или профиль почтовой службы) для учетной записи служб SQL Mail и Вы можете создать профиль службы электронной почты с помощью клиента MAPI или Mail из Control Panel. Если каждая из служб использует различные учетные записи пользователей домена, необходимо создать профиль службы электронной почты для каждой из ис пользуемых учетных записей. Чтобы создать профиль службы электронной почты, за регистрируйтесь в Windows 2000 как пользователь домена. Если учетная запись поль зователя домена не обладает правами администратора локальной системы, может предоставить этой учетной записи право интерактивного (локального) подключения, чтобы создать профиль службы электронной почты для данной учет ной записи. Профиль службы электронной почты содержит информацию о нии, используемую клиентом MAPI для подключения к серверам Microsoft Exchange Server, Microsoft Windows Mail и/или Примечание Чтобы проверить действие профиля службы электронной почты, зареги стрируйтесь в Windows 2000, используя учетную запись служб SQL Mail и SQLAgent Mail. Запустите MAPI и убедитесь, что он может отправлять и получать При создании профиля службы электронной почты с использованием клиента MAPI или апплета Mail из Control Panel по умолчанию используется имя профиля Администрирование SQL службы электронной почты MS Exchange Settings указано в поле Profile Name).

С помощью расширенной системной хранимой процедуры вы можете изменить имя профиля почтовой службы для пользователя SQL Server 2000, которое будет использоваться по умолчанию. С Mail в Control Panel вы можете добавлять, просматривать, удалять или изменять параметры настройки профиля почтовой службы для пользователей домена (рис. 12-25 и Рис. 12-25. профили Рис. 12-26. Изменение свойств почтового профиля Настройка SQL Настроив и проверив правильность настройки профиля почтовой службы для учет ной записи пользователя домена службы SQL Server, вы можете начинать настраи вать SQL Mail. Если вы используете SQL Server Enterprise Manager, в дереве консоли раскройте Support Services, щелкните правой кнопкой SQL Mail и выберите Properties.

Откроется окно SQL Mail Configuration (рис. 12-27). Выберите имя профиля почто вой службы из списка Profile Name.

Если в SQL Server Enterprise Manager не отображается почтовый про филь, в реестре Windows проверьте, что служба SQL Server использует регистрацион ную запись пользователя домена, для которой профиль почтовой службы и кото рая имеет полные права доступа к разделу реестра Занятие дополнительных Рис. 12-27. Выбор почтового профиля для SQL Mail Щелкните Test, чтобы проверить, началась ли почтовая сессия (рис. 12-28).

Рис. 12-28. Проверка почтового профиля Вы также можете настроить SQL Mail с системной хранимой процедуры Настройка Настроив и проверив правильность настройки профиля почтовой службы для учет ной записи пользователя домена службы SQL Server Agent, вы можете начинать на страивать SQLAgentMail. Если вы используете SQL Server Enterprise Manager, в дере ве консоли раскройте Management, щелкните правой кнопкой SQL Server Agent и выберите Properties. Откроется окно Server Agent Properties (рис. 12-29).

На вкладке General в группе элементов управления Mail Session выберите имя про филя почтовой службы из списка Mail Profile. Щелкните кнопку Test, чтобы рить, началась ли почтовая сессия. По умолчанию сообщения, посылаемые SQL Server Agent, не сохраняются в папке Sent Items клиента О том, как использовать SQLAgentMail для уведомления о результатах выполнения задач и системных собы тиях, Ч в главе. 13.

SQL Глава Рис. 12-29. Выбор профиля почтовой службы для Настройка связанных серверов SQL Server 2000 может подключаться к связанным серверам. Связанные серверы ис пользуются в первую очередь для распределения запросов, объединения данных из различных БД на различных серверах (таких как SQL Server 7.0/2000, Oracle и Access).

Вы можете сконфигурировать связанный сервер для любого OLE DB-источника дан ных с помощью SQL Server Enterprise Manager. Хотя в качестве OLE обычно используется другая БД, он также может быть и текстовым файлом, элект ронной таблицей или результатом полнотекстового поиска (рис. 12-30).

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

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

2 Настройка компонентов Клиентское приложение SQL Server I t OLE DB поставщик (DLLs) I I I I Рис. 12-30. Схема конфигурации связанных серверов Конфигурирование серверов с использованием SQL Server Enterprise Manager Если вы используете SQL Server Enterprise Manager, в дереве консоли раскройте Security, щелкните правой кнопкой Linked Servers и выберите New Linked Server. От кроется окно Linked Server Properties Ч New Linked Server 12-31).

OLE OB Provider Se OLE OB ODBC OLE OB lop Service!

OLE Provider fa в О OLE Provider OLE DB for SQL Save Рис. 12-31. Указание имени поставщика при создании связанного сервера На вкладке Security свяжите локальные учетные записи с удаленными учетными (рис. 12.32) SQL Server На вкладке General введите имя связанного сервера в поле Linked Server. Если в группе Server Type вы установите переключатель SQL Server, то указываемое имя дол жно быть сетевым и системным именем SQL Server. Вы можете выбрать имя OLE из списка Provider Name. управляет доступом к связан ному серверу. Обратите что в списке есть OLE Microsoft Directory Services для выполнения запросов к Active Directory. Если вы хотите опреде лить источник данных, который не принадлежит экземпляру SQL установите переключатель Other Data Source группе Server Type и введите необходимые данные об источнике (название продукта, источник данных, строка поставщика).

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

Для удаленной учетной записи необходимо ввести пароль.

Рис. 12-32. Сопоставление локальных учетных с удаленными учетными записями для связанных серверов Чтобы служба SQL Server могла заимствовать реквизиты пользователя Windows, нужно разрешить делегирование учетной записи пользователя (см. главу 10).

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

И наконец, на вкладке Server Options вы можете выбрать значения специальных параметров соединения, например команды обработки строк или максимального вре мени ожидания выполнения запроса (рис. 12-33).

Настройка Рис. 12-33. Настройка специальных параметров соединения для связанного сервера Конфигурирование связанных серверов с использованием Чтобы сконфигурировать связанный сервер, вы можете использовать системную хра нимую процедуру В следующем примере создается связь между текущим экземпляром сервера и земпляром MyNamedlnstance на Учетные записи пользователей не свя зываются. По умолчанию данная конфигурация определяет, что все подключения осуществляются с использованием имени и пароля подключившегося к SQL Server пользователя:

Примечание В SQL Server 2000 Books Online приводятся примеры использования сис темной хранимой для к источникам дан ных, которыми не являются серверы SQL Server.

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

В следующем примере учетная запись пользователя Windows Bill в домене PacedSQL связывается с учетной записью sa связанного сервера.

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

SQL Глава Упражнение Конфигурирование связанного сервера и проверка его работы В этом упражнении вы с SQL Server Enterprise Manager сконфигу рируете связанный сервер.

Чтобы сконфигурировать связанный сервер и проверить его работу 1. Убедитесь, что вы зарегистрировались на контроллере домена под учетной записью Administrator.

2. Раскройте меню SQL Server и выберите Enterprise Manager.

3. В дереве консоли последовательно раскройте контейнеры Microsoft SQL Servers, Microsoft SQL Group, SQL Server по умолчанию и Security.

4. Щелкните кнопкой Linked Servers и выберите New Linked Server.

Откроется окно Linked Server Properties Ч New Linked Server.

5. На вкладке General в поле Linked Server введите 6. Ниже надписи Server Type установите переключатель SQL Server и перейдите на вкладку Security.

7. В группе элементов For A Login Not Defined In The List Above, Connections Will установите переключатель Be Made Using The Login's Current Security Context и щелкните ОК.

8. В меню выберите SQL Query Analyzer.

Откроется SQL Query Analyzer.

9. В панели запросов введите SELECT * FROM и в панели инструментов щелкните кнопку Execute Query.

Обратите внимание, что в области результатов запроса показана Customer.

В меню выберите Connect.

Откроется окно Connect To SQL Server.

12. Щелкните SQL Server Authentication.

13. В поле Login name введите Joe.

14. В поле Password введите password и шелкните ОК.

окно SQL Query Analyzer.

Pages:     | 1 |   ...   | 4 | 5 | 6 | 7 | 8 |   ...   | 9 |    Книги, научные публикации