Главная страница

Методичні вказівки до виконання лабораторних робіт Київ 2014 Зміст Лабораторна робота 1 Розробка програми розмежування повноважень користувачів на основі парольної автентифікації 3


Скачать 1.3 Mb.
НазваниеМетодичні вказівки до виконання лабораторних робіт Київ 2014 Зміст Лабораторна робота 1 Розробка програми розмежування повноважень користувачів на основі парольної автентифікації 3
АнкорLaby_po_ZI.doc
Дата11.08.2018
Размер1.3 Mb.
Формат файлаdoc
Имя файлаLaby_po_ZI.doc
ТипМетодичні вказівки
#22806
страница7 из 7
1   2   3   4   5   6   7

Для шифрування змісту колонок таблиці БД необхідно виконати наступні дії:

  1. Впевнитися, що для екземпляра SQL Server створено мастер-ключ. Мастер-ключ є вершиною ієрархії методів криптографічного захисту. Він створюється при інсталяції екземпляра сервера.


USE master;

GO

SELECT *

FROM sys.symmetric_keys

WHERE name = '##MS_ServiceMasterKey##';

GO
  1. Створити мастер-ключ бази даних encrypt_test:


USE encrypt_test;

GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Password123';

GO
  1. Створити сертификат. Сертификат підписується SQL Server.


USE encrypt_test;

GO

CREATE CERTIFICATE Certificate1

WITH SUBJECT = 'Protect Data';

GO
  1. Створення симетричного ключа:


USE encrypt_test;

GO

CREATE SYMMETRIC KEY SymmetricKey1

WITH ALGORITHM = AES_128

ENCRYPTION BY CERTIFICATE Certificate1;

GO
  1. Зміна схеми даних. Для зберігання зашифрованої інформації даних тип колонки має бути varbinary, тому в таблицю додається колонка такого типу з іменем Credit_card_number_encrypt:


USE encrypt_test;

GO

ALTER TABLE Customer_data

ADD Credit_card_number_encrypt varbinary(MAX) NULL

GO
  1. Шифрування колонки таблиці. Для шифрування використовується команда EncryptByKey. Перед шифруванням необхідно відкрити симетричный ключ, а по закінченню закрити.


USE encrypt_test;

GO

-- Opens the symmetric key for use

OPEN SYMMETRIC KEY SymmetricKey1

DECRYPTION BY CERTIFICATE Certificate1;

GO

UPDATE Customer_data

SET Credit_card_number_encrypt = EncryptByKey (Key_GUID('SymmetricKey1'),Credit_card_number)

FROM dbo.Customer_data;

GO

-- Closes the symmetric key

CLOSE SYMMETRIC KEY SymmetricKey1;

GO
  1. Видалити незашифровану колонку:


USE encrypt_test;

GO

ALTER TABLE Customer_data

DROP COLUMN Credit_card_number;

GO
  1. Читання зашифрованих даних:


USE encrypt_test;

GO

OPEN SYMMETRIC KEY SymmetricKey1

DECRYPTION BY CERTIFICATE Certificate1;

GO

-- Читання розшифрованих даних

SELECT
Customer_id, Credit_card_number_encrypt AS 'Encrypted Credit Card Number',

CONVERT(varchar, DecryptByKey(Credit_card_number_encrypt))
AS 'Decrypted Credit Card Number'

FROM dbo.Customer_data;

CLOSE SYMMETRIC KEY SymmetricKey1;

GO
  1. Для додавання даних в зашифровану колонку використовуються команди:


USE encrypt_test;

GO

OPEN SYMMETRIC KEY SymmetricKey1

DECRYPTION BY CERTIFICATE Certificate1;

INSERT INTO dbo.Customer_data (Customer_id, Customer_Name, Credit_card_number_encrypt)

VALUES (25665, 'mssqltips4', EncryptByKey( Key_GUID('SymmetricKey1'), CONVERT(varchar,'4545-58478-1245') ) );

GO
  1. Надання повноважень для доступу до зашифрованих даних. Для доступу до зашифрованих даних користувач повинний мати доступ до сертификата і симетричного ключа. Надати такі повноваження користувачу test можна командою:


GRANT VIEW DEFINITION ON SYMMETRIC KEY::SymmetricKey1 TO test;

GO

GRANT VIEW DEFINITION ON Certificate::Certificate1 TO test;

GO
Завдання для лабораторної роботи

  1. Напишіть команди Transact SQL для наступних дій:

    1. Створити новий обліковий запис;

    2. Назначити користувачу роль БД (будь-яку);

    3. Надати користувачу Bill повноваження на доступ к збереженої процедури (будь-якої);

    4. Відкликати всі надані користувачу John привілегії.

  2. Поясніть призначення наступних команд Transact SQL:

      1. GRANT SELECT, INSERT
        ON SUPPLIES
        TO J_Smith
        WITH GRANT OPTION AS Economists

      2. EXEC[UTE] sp_addlogin ‘king_of_the_db',
        ‘a2h7d0f7dg84mdf94',
        ‘PROJECTS',
        ‘Ukrainian',
        ‘master',
        ‘NULL'

      3. REVOKE ALL TO ‘M_Ivanenko'
        CASCADE

  3. Зашифруйте зміст однієї з колонок таблиці в створеній БД.


питання по самоконтролю по лабораторній роботі № 9

  1. Які етапи автентифікації проходять користувачі для работи з MS SQL Server?

  2. Як можна встановити довірче з’єднання?

  3. Коли варто використовувати змішаний режим аутентифікації?

  4. Який термін використовується фактично при доступі об’єкта до БД? (login чи user)

  5. Яке призначення ролі сервера і ролі БД?

  6. Що значить параметр CASCADE?

  7. Коли виникає конфлікт доступу?

  8. Призначення сертификату в системі криптографічного захисту MS SQL Server?


1   2   3   4   5   6   7


написать администратору сайта