Главная Обратная связь

Дисциплины:






CREATE USER Login1 FOR LOGIN Login1



GO

Примечание

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

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

GRANT SELECT ON SCHEMA::HumanResources TO Login1

Примечание

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

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

USE adventureworks

GO

SELECT * FROM HumanResources.Employee

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

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

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

Use master

GO

GRANT IMPERSONATE ON LOGIN::Login1 TO Login2

GO

Примечание

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

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

EXECUTE AS LOGIN = 'Login1';

GO

USE Adventureworks

GO

SELECT * FROM HumanResources.Employee;

GO

Задание для самостоятельной работы 4.2 Шифрование информации в таблицах баз данных

Ситуация:

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

Задание:

61. Создайте в базе данных AdventureWorks симметричный ключ PayKey для применения с алгоритмом AES_256. Ключ должен быть защищен паролем P@ssw0rd.

62. Создайте в базе данных AdventureWorks копию таблицы HumanResources.EmployeePayHistory. Новая копия должна называться HumanResources.EmployeePayHistoryEncrypted, и все данные в ней должны быть зашифрованы при помощи созданного вами симметричного ключа.



63. Выполните запрос, который бы вернул все данные из зашифрованной таблицы HumanResources.EmployeePayHistoryEncrypted.

Примечание

Зашифрованную информацию нельзя поместить в столбцы типа Int, Money и т.п. Поэтому создание таблицы EmployeePayHistoryEncrypted придется производить вручную. Для целей этого задания используйте для всех столбцов этой таблицы один и тот же тип данных — nvarchar(100). Кроме того, несимвольные типы данных необходимо преобразовать в символьные (например, nvarchar(100)) перед передачей их шифрующей функции.

Решение:

К пункту 1 — создание симметричного ключа:

Команда на создание симметричного ключа в соответствии с поставленными условиями может выглядеть так:

USE AdventureWorks

GO

CREATE SYMMETRIC KEY PayKey WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'P@ssw0rd'

К пункту 2 — создание зашифрованной копии таблицы:

Код для создания зашифрованной копии таблицы HumanResources.EmployeePayHistory может выглядеть так:

USE AdventureWorks

GO

-- Создаем таблицу для вставки шифрованных данных





sdamzavas.net - 2020 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...