|
Программирование >> Построение запросов sql
Line = ; FOR EXECUTE STATEMENT SELECT :TextField FROM :TableName INTO :OneLine DO IF (OneLine IS NOT NULL) THEN Line = Line OneLine , ; SUSPEND; END. Результат выполнения блока для столбца Fio таблицы Abonent совпадает с результатом, представленным на рис. 6.9. Контрольные вопросы 1. В чем состоят преимущества использования хранимых процедур в языке SQL? 2. В чем состоят преимущества использования триггеров? 3. Как осуществляется объявление локальной переменной в теле модуля на процедурном SQL? 4. Какие условные операторы используются в процедурном SQL? 5. Что такое курсор? Каковы особенности работы с явным и неявным курсором? 6. Как запомнить значения определенных столбцов изменяемых таблиц в переменных при использовании запросов модификации данных в PSQL? 7. Что такое генератор последовательности? Как его создать, использовать и удалить с помощью средств языка SQL? 8. Что такое исключение? Как оно создается, изменяется и вызывается? 9. С помощью какого оператора осуществляется динамическое выполнение запросов DDL и DML в модуле процедурного SQL? Какие используются формы этого оператора? 10. Что такое SQL-сценарий? Как выполнить создание БД в SQL-сценарии? 11. Что такое триггер DML? Как он создается, модифицируется и удаляется? 12. Как создать триггер БД? Чем триггер БД отличается от триггера DML? 13. В чем состоят отличия семантического характера хранимых процедур от триггеров? Как создать, изменить и удалить ХП? 14. Какие виды хранимых процедур существуют? Чем они отличаются друг от друга? Как они вызываются? 15. Как выполнить блок кода на процедурном языке без оформления хранимой процедуры или триггера? 7. Защита данных В современных ИС важно не только правильно спроектировать структуру БД и манипулировать данными, но также и обеспечить защиту этих данных. Защита данных - это мероприятия по охране данных от множества возможных угрожающих ситуаций, как преднамеренных, так и случайных. Причинами возможного разрушения или потери данных могут быть: - порча или изменение данных анонимным пользователем; - завершение работы программ при системном сбое, когда база данных остается в непредсказуемом состоянии; - возникновение конфликта при выполнении двух и более программ, конкурирующих за одни и те же данные; - изменение базы данных недопустимым способом обновления и т. д. Защита базы данных от подобных проблем реализуется, в основном, за счет управления доступом к данным, а также с помощью механизма транзакций. Материал настоящей главы в большей мере ориентирован на администраторов базы данных. Здесь рассматривается система безопасности, принятая в языке SQL. Излагаются общие правила разграничения доступа пользователей к объектам базы данных и описываются методы управления доступом. Также в данной главе приводится определение транзакции и ее свойств, рассматривается механизм сохранения и отката транзакций, описывается использование механизма транзакций для восстановления системы при повреждениях. Вводятся понятие параллельности в работе базы данных и методы управления параллельностью с использованием блокировок. 7.1. Управление доступом к данным 7.1.1. Требования к безопасности данных В любой ИС существует конфиденциальная информация, доступ к которой может быть разрешен лишь ограниченному кругу лиц. Безопасность данных является важным аспектом управления базами данных, поскольку информация, хранимая в БД, представляет собой чрезвычайно ценный ресурс. Поэтому обеспечение безопасности хранимых данных является неотъемлемой частью любой современной СУБД, в том числе и Firebird. Под безопасностью данных понимается защита данных от несанкционированного доступа. Схема доступа к данным в реляционных СУБД базируется на трех следующих принципах. 1. Пользователи СУБД рассматриваются как основные действующие лица, желающие получить доступ к данным. Безопасность целесообразно рассматривать в многопользовательской среде, когда существует определенный круг пользователей, имеющих доступ к БД. Логически пользователь Firebird - это регистрационная (учетная) запись, доступная во всех базах данных, обслуживаемых сервером. Чтобы зарегистрировать нового пользователя, необходимо воспользоваться либо инструментом командной строки gsec, либо графическим инструментом администрирования БД. Например, чтобы зарегистрировать нового пользователя с помощью IBExpert, необходимо воспользоваться пунктом Менеджер пользователей меню Инструменты . С помощью SQL-команды создать или удалить пользователя Firebird нельзя - это следствие вынесения системы безопасности на уровень сервера. Имя пользователя может иметь длину до 31 символа включительно, пароль - до 32 символов, однако из них для аутентификации используются только первые 8 символов. Для имен пользователей не важен регистр символов, но пароль является регистрочувствительным. Следует отметить, что только системный администратор SYSDBA может создавать новых пользователей в Firebird. Как уже отмечалось, информация обо всех пользователях, которые имеют доступ к серверу Firebird, и их паролях хранится в файле security2.fdb. Когда удаленный или локальный клиент соединяется с БД, происходит идентификация пользователя. Стабильная система управления пользователями - обязательное условие безопасности данных, хранящихся в любой реляционной СУБД. 2. Объекты доступа - это элементы базы данных, доступом к которым можно управлять (разрешать доступ или защищать от доступа). Обычно объектами доступа являются таблицы, однако ими могут быть и другие объекты БД - представления, хранимые процедуры и т.д. Как правило, для обеспечения безопасности требуется, чтобы данные в любой таблице были доступны не всем пользователям, а лишь некоторым из них, а для определенных таблиц необходимо обеспечить выборочный доступ к ее столбцам. Некоторым пользователям должен быть запрещен непосредственный (через запросы) доступ к таблицам, но разрешен доступ к этим же таблицам с помощью механизма представлений. Итак, конкретный пользователь обладает конкретными правами доступа к конкретному объекту. 3. Привилегии - это системный признак, определяющий операции, которые разрешено выполнять пользователю над конкретными объектами. СУБД от имени конкретного пользователя выполняет операции над базой данных, то есть добавляет строки в таблицы (INSERT), удаляет строки (DELETE), обновляет данные в строках таблицы (UPDATE). Она делает это в зависимости от того, обладает ли конкретный пользователь правами на выполнение конкретных операций над конкретным объектом БД. Например, некоторым пользователям может быть разрешено обновление данных в таблицах, в то время как для других допускается лишь выбор данных из этих же таблиц. Таким образом, в СУБД авторизация доступа осуществляется с помощью привилегий. Установление и контроль привилегий являются обязанностью администратора базы данных. 7.1.2. Привилегии доступа и передача привилегий Создание учетной записи пользователя само по себе не дает ему никаких прав на доступ к объектам БД. Безопасность в языке SQL на уровне доступа к
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |