Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL2008_Administration.doc
Скачиваний:
91
Добавлен:
08.11.2018
Размер:
3.38 Mб
Скачать

Задание для самостоятельной работы 4.1 Назначение прав на объекты sql Server 2008 и изменение контекста выполнения Задание:

  1. Создайте два логина SQL Server 2008. Для первого логина используйте имя Login1 и пароль P@ssw0rd1, а для второго — Login2 и P@ssword2.

  2. Предоставьте логину Login1 права на схему HumanResources в базе данных AdventureWorks и убедитесь, что он может выполнять запросы к любым таблицам этой схемы. Проверьте также отсутствие у логина Login2 прав на выполнение запросов к таблицам в схеме HumanResources.

  3. Предоставьте логину Login2 права на выполнение запроса от имени логина Login1. Напишите код запроса с использованием конструкции EXECUTE AS, в ходе которого пользователь Login2 смог бы выполнить запрос к таблице HumanrResources.Employee от имени пользователя Login1.

Решение: к пункту 1 — создание логинов:

  1. Запустите SQL Server Management Studio и подключитесь к своему локальному серверу SQL Server 2008 при помощи аутентификации Windows. Затем нажмите на кнопку New Query, чтобы открыть редактора кода Transact-SQL.

  2. Введите и выполните в окне редактора кода следующие команды:

USE master

GO

CREATE LOGIN Login1 WITH PASSWORD=N'P@ssw0rd1', DEFAULT_DATABASE=master, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

GO

CREATE LOGIN Login2 WITH PASSWORD=N'P@ssw0rd2', DEFAULT_DATABASE=master, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

GO

Примечание

Создание логинов SQL Server 2008 можно также произвести при помощи графического интерфейса — из контейнера Security  Logins в Object Explorer.

К пункту 2 — предоставление разрешений на схему и проверка прав:

  1. Чтобы создать объект пользователя в базе данных AdventureWorks для логина Login1, можно выполнить следующий код:

USE AdventureWorks

GO

CREATE USER Login1 FOR LOGIN Login1

GO

Примечание

Создание объекта пользователя можно также произвести при помощи графического интерфейса — из контейнера Databases  AdventureWorks  Security Users в Object Explorer.

  1. Чтобы предоставить созданному пользователю Login1 права на чтение для объектов схемы HumanResources, можно выполнить код:

GRANT SELECT ON SCHEMA::HumanResources TO Login1

Примечание

При помощи графического интерфейса эту операцию можно произвести на вкладке Permissions свойств объекта схемы HumanResources в контейнере Databases | AdventureWorks | Security | Schemas в Object Explorer.

    1. Для проверки полученных прав можно подключиться от имени логина Login1 (в меню File New выбрать Database Engine Query и открывшемся окне ввести имя пользователя и пароль для логина Login1). Затем в открывшемся от имени Login1 окне редактора кода ввести и выполнить запрос, например:

USE adventureworks

GO

SELECT * FROM HumanResources.Employee

Для пользователя Login1 запрос будет выполнен успешно. Если вы попробуете выполнить такой запрос от имени пользователя Login2, то вернется ошибка.

К пункту 3 - предоставление права на выполнение команды execute as:

    1. Для того, чтобы предоставить право логину Login2 выполнять команды от имени логина Login2, можно выполнить следующий код (от имени администратора сервера):

use master

GO

GRANT IMPERSONATE ON LOGIN::Login1 TO Login2

GO

Примечание

При помощи графического интерфейса такое предоставление прав можно произвести из свойств логина Login2 (не Login1!) на вкладке Securables.

    1. Для проверки успешности предоставленных прав и изменения контекста выполнения можно выполнить следующий запрос (его нужно выполнить, подключившись к серверу от имени логина Login2):

EXECUTE AS LOGIN = 'Login1';

GO

USE Adventureworks

GO

SELECT * FROM HumanResources.Employee;

GO

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]