
- •Работа с базами данных в субд ms sql Server 2008r
- •1 Описание работы и задания 7
- •1 Описание работы и задания 25
- •1 Описание работы и задания 39
- •1 Описание работы и задания 62
- •1 Описание работы и задания 73
- •Введение в Microsoft Visual FoxPro Лабораторная работа 1.1 Создание баз данных в субд ms Visual FoxPro
- •1 Описание работы и задания
- •Определить условия на значения и сообщения об ошибках некоторых полей.
- •2 Выполнение работы
- •2.1 Обращение к среде sql Server Management Studio
- •2.2 Знакомство с языком Transact-sql
- •2.2.1 Возможности t-sql и особенности его использования
- •2.2.2 Создание базы данных
- •2.2.3 Создание таблиц
- •2.2.4 Манипулирование данными с помощью команд t-sql
- •2.3 Работа с обозревателем объектов
- •2.3.1 Создание базы данных
- •2.3.2 Создание таблиц
- •2.3.3 Занесение данных в созданную таблицу
- •2.3.4 Создание объектов с помощью диаграмм данных и поддержка целостности данных
- •Лабораторная работа 2.2 Создание запросов в субд ms sql Server 2008r
- •1 Описание работы и задания
- •2 Выполнение работы
- •2.1 Оператор select
- •2.1.1 Простая выборка данных
- •2.1.2 Аналитическая выборка данных
- •2.1.3 Условие отбора where
- •2.1.4 Группировка записей group by
- •2.1.5 Условие на группируемые поля having
- •2.1.6 Использование функций преобразования различных типов данных
- •2.2 Подзапросы
- •2.3 Выборка данных из нескольких таблиц
- •2.3.1 Внутреннее соединение
- •2.3.2 Внешнее соединение
- •2.3.3 Перекрестные соединения
- •2.2.4 Объединение нескольких наборов результатов
- •Лабораторная работа 2.3 Хранимые процедуры и триггеры
- •1 Описание работы и задания
- •2 Выполнение работы
- •2.1 Хранимые процедуры
- •2.1.1 Переменные. Задание значений переменных
- •2.1.2 Использование переменных в запросах sql
- •2.1.3 Создание хранимых процедур
- •2.1.3.1 Создание хранимой процедуры без параметров
- •2.1.3.2 Создание и изменение хранимой процедуры с входными и выходными параметрами
- •2.1.3 Удаление хранимых процедур
- •2.2 Триггеры
- •2.3 Списки встроенных функции для работы с данными типа дата и строковыми данными
- •Лабораторная работа 2.4 Курсоры
- •1 Описание работы и задания
- •2 Выполнение работы
- •2.1 Понятие курсора
- •2.2 Реализация курсоров в среде ms sql Server
- •2.3 Управление курсором в среде ms sql Server
- •2.3.1 Объявление курсора
- •2.3.2 Открытие курсора
- •2.3.3 Выборка данных из курсора
- •2.3.4 Изменение и удаление данных
- •2.3.5 Закрытие курсора
- •2.3.6 Освобождение курсора
- •2.2. Безопасность баз данных и привилегии
- •2.3. Основные методы защиты данных в ms sql Server 2008 r2
- •Список использованных источников
- •Список предметных областей
- •Типы данных sql 2008r
2.2. Безопасность баз данных и привилегии
При хранении информации в СУБД одной из основных задач является обеспечение безопасности данных. В языке SQL используются следующие основные принципы защиты данных:
В БД действующими лицами являются пользователи. Если с данными происходит какая-либо манипуляция, то она происходит от имени конкретного пользователя. СУБД может отказаться выполнить запрашиваемые действия в зависимости от того, какой пользователь запрашивает это действие.
Объекты БД являются теми элементами, чья защита может осуществляться посредством SQL. Обычно обеспечивается не только защита таблиц и представлений, но и других объектов БД. Система разрешает одним пользователям осуществлять действия над одними объектами и запрещает это над другими.
В SQL используется система привилегий, т.е. прав пользователя на проведение тех или иных действий над определенным объектом базы данных.
Вообще говоря, администратор БД сам создает пользователей и дает им привилегии, но, с другой стороны, пользователи, которые создают таблицы, сами имеют права на управление этими таблицами. Существует несколько типов привилегий, соответствующих целому ряду типов операций. В SQL привилегии даются и отменяются двумя командами SQL
GRANT (допуск);
REVOKE (отмена).
Каждый пользователь в среде SQL имеет специальное идентификационное имя или номер (ID) доступа. Команда, посланная в БД, ассоциируется с определенным пользователем, т.е. специальным идентификатором доступа. Поскольку это относится к SQL БД, ID разрешения – это имя пользователя, и SQL может использовать специальное ключевое слово USER, которое ссылается к идентификатору доступа, связанному с текущей командой Команда интерпретируется и разрешается (или запрещается) на основе информации, связанной с идентификатором доступа пользователя, подавшего команду.
В системах с большим количеством пользователей, существует специальная процедура входа в систему, которую пользователь должен обязательно выполнить для получения доступа. Эта процедура определяет, какой именно ID доступа будет связан с текущим пользователем. Обычно каждый человек, использующий БД, имеет свой собственный ID доступа и при регистрации превращается в действительного пользователя. Однако достаточно часто пользователи, имеющие много задач, могут регистрироваться под различными ID доступа, или наоборот – один ID доступа может использоваться несколькими пользователями. С точки зрения SQL нет никакой разницы между этими двумя случаями - он воспринимает пользователя просто как его ID доступа.
SQL БД может использовать собственную процедуру входа в систему или может позволить другой программе (например, операционной системе компьютера) обрабатывать файл регистрации и получать ID доступа. Однако, каким бы способом СУБД не воспользовалась, в любом случае SQL будет иметь ID доступа для того, чтобы связать его с действиями пользователя, для которого будет иметь значение ключевое слово USER.
Каждый пользователь в SQL БД имеет набор привилегий. Эти привилегии могут изменяться со временем – новые добавляться, старые удаляться. Стандартные SQL привилегии, определенные ANSI – это привилегии объекта. Это означает, что пользователь имеет привилегию для выполнения данной команды только на определенном объекте в БД. Привилегии объекта связаны одновременно и с пользователями и с таблицами, т. е. привилегия дается определенному пользователю в указанной базовой таблице представлении. При этом надо помнить, что пользователь, создавший таблицу любого вида, является ее владельцем. Это в свою очередь означает, что такой пользователь имеет все привилегии в этой таблице и может передавать привилегий другим пользователям для этой таблицы.
Привилегии, которые можно назначить пользователю, следующие:.
SELECT – пользователь с этой привилегией может выполнять запросы к таблице;
INSERT – пользователь с этой привилегией может выполнять вставку записей, т.е. команду INSERT в таблице;
UPDATE – пользователь с этой привилегией может выполнять корректировку данных, т.е. команду UPDATE к данной таблице;
DELETE – пользователь с этой привилегией может выполнять команду DELETE в таблице;
REFERENCES – с этой привилегией пользователь имеет возможность определить внешний ключ, который использует один или более столбцов данной таблицы, как родительский ключ;
INDEX – дает право пользователю создавать индекс в таблице;
SYNONYM – пользователь, обладающей этой привилегией, имеет право создавать синоним для объекта;
ALTER дает право пользователю выполнять команду изменения структуры (ALTER TABLE) в данной таблице.