Материал: Методические указания к лабораторным работам № 6–9 по дисциплинам «Основы построения защищенных СУБД», «Безопасность систем баз данных». Плотников Д.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

 

 

 

 

 

Продолжение табл.7

Название

 

Назначение представления

Название столбца

 

Назначение столбца

представления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CREATETABAUTH

 

привилегия CREATETAB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BINDADDAUTH

 

привилегия BINDADD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CONNECTAUTH

 

привилегия CONNECT

 

 

 

 

SCHEMAAUTH

 

назначения привилегий схемы

GRANTOR

 

кто дал привилегию

 

 

 

 

 

 

 

 

 

 

 

GRANTEE

 

кому дана привилегия

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GRANTEETYPE

 

пользователю/группе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SCHEMANAME

 

имя схемы

 

 

 

 

 

 

 

 

 

 

 

ALTERINAUTH

 

привилегия ALTERIN

 

 

 

 

 

 

 

 

 

 

 

CREATINAUTH

 

привилегия CREATIN

 

 

 

 

 

 

 

 

 

 

 

DROPINAUTH

 

привилегия DROPIN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TABAUTH

 

назначения

привилегий

GRANTOR

 

кто дал привилегию

 

 

таблиц и представлений

 

 

 

 

 

 

 

 

 

 

GRANTEE

 

кому дана привилегия

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GRANTEETYPE

 

пользователю/группе

 

 

 

 

 

 

 

 

 

 

 

TABSCHEMA

 

имя схемы

 

 

 

 

 

 

 

 

 

 

 

TABNAME

 

имя таблицы

 

 

 

 

 

 

 

34

Окончание табл. 7

Название

представления

COLAUTH

Назначение представления

 

Название столбца

 

Назначение столбца

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CONTROLAUTH

 

привилегия CONTROL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALTERAUTH

 

привилегия ALTER

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DELETEAUTH

 

привилегия DELETE

 

 

 

 

 

 

 

 

 

 

 

INSERTAUTH

 

привилегия INSERT

 

 

 

 

 

 

 

 

 

 

 

UPDATEAUTH

 

привилегия UPDATE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SELECTAUTH

 

привилегия SELECT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

REFAUTH

 

привилегия REFERENCE

 

 

 

 

 

 

 

 

 

 

 

INDEXAUTH

 

привилегия INDEX

 

 

 

 

 

назначения

привилегий

для

GRANTOR

 

кто дал привилегию

столбцов

таблиц

 

и

 

 

 

 

GRANTEE

 

кому дана привилегия

представлений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GRANTEETYPE

 

пользователю/группе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TABSCHEMA

 

имя схемы

 

 

 

 

 

 

 

 

 

 

 

TABNAME

 

имя таблицы

 

 

 

 

 

 

 

 

 

 

 

COLNAME

 

имя столбца

 

 

 

 

 

 

 

 

 

 

 

PRIVTYPE

 

привилегия: UPDATE/REFERENCE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GRANTABLE

 

возможность передачи

 

 

 

 

 

 

 

35

Контрольные вопросы

1.Объяснить принцип работы написанного

триггера.

2.Какие бывают типы триггеров?

3.Когда может срабатывать триггер?

4.В каком порядке срабатывают триггеры?

5.Можно ли менять порядок срабатывания

триггеров?

6.Сработает ли триггер, если оператор, выполненный пользователем, не затрагивает ни одну строку таблицы?

Дополнительные вопросы

1.Исправить ошибки в работе триггера.

2.Модифицировать триггер каким-либо образом.

36

Лабораторная работа № 9 Использование индексов и средств оптимизации запросов

Цель работы

Освоение основных методов и средств оптимизации запросов в средах СУБД Microsoft SQL Server.

Темы для предварительной проработки

Использование

индексов для ускорения

выполнения

запросов.

 

 

Визуальные

интерфейсы

управления

индексами Microsoft Enterprise Manager.

Средства оптимизации запросов, предоставляемые средой Microsoft SQL Server.

Выполнение работы

 

1. Подготовить рабочие наборы данных:

 

Запустить Microsoft

Query

Analyzer,

подключиться к пользовательской базе данных.

Для того, чтобы использование индексов было

целесообразным,

необходим

проводить

индексацию существенных объемов данных в таблицах. Для получения этих наборов данных нужно скопировать таблицы Customers, Orders, Order Details и Products из демонстрационной базы данных Northwind в пользовательскую базу данных с помощью следующих SQL-операторов (выполняемых в пользовательской базе данных):

SELECT * INTO Customers FROM Northwind..Customers

DECLARE @count INT SELECT @count = 10 WHILE @count >= 0

37

BEGIN

INSERT INTO Customers SELECT * FROM Northwind..Customers

SELECT @count = @count - 1 END

SELECT * INTO Orders FROM Northwind..Orders

SELECT * INTO OrderDetails FROM

Northwind.."Order Details"

SELECT * INTO Products FROM Northwind..Products SELECT @count = 10

WHILE @count >= 0 BEGIN

INSERT INTO Products (ProductName,SupplierID,CategoryID,QuantityPerUnit,

UnitPrice,UnitsInStock,UnitsOnOrder,

ReorderLevel,Discontinued)

SELECT ProductName,SupplierID,CategoryID, QuantityPerUnit,UnitPrice,UnitsInStock,

UnitsOnOrder,ReorderLevel,Discontinued FROM Northwind..Products

SELECT @count = @count - 1 END

Обратите внимание, что здесь используется цикл для увеличения количества записей в таблицах Customers и Products. Хотя это и некорректная операция в плане того, что мы дублируем первичные ключи и другую уникальную информацию, но в данном случае нас интересуют в первую очередь большие объемы информации в таблице, а не строгое следование ограничениям целостности.

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

38

Источник: https://studfile.net/preview/16563472/