Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Безопасность на уровне базы данных
Безопасность на уровне базы данных в Firebird решает две задачи: - не разрешить пользователям, идентифицированным на сервере, доступ к данным базы данных; - предоставить доступ пользователям, которые работают с данной базой данных. Средствами реализации этого являются привилегии SQL. Привилегии SQL могут поддерживать любой уровень детализации доступа к любому элементу данных вплоть до уровня столбца. В отличие от пользователей привилегии применимы к уровню базы данных и хранятся непосредственно в самой базе данных в системной таблице RDB$USER_PRIVILEGES. В момент создания базы данных доступ к любому объекту базы данных имеют владелец и SYSDBA. Остальные пользователи должны для этого иметь привилегии SQL к любой операции, даже к SELECT. Несуществующие объекты не являются защищёнными. Любой пользователь, имеющий доступ к базе данных, может создать любой допустимый объект базы данных, в том числе и внешние функции и внешние таблицы, которые могут быть использованы для установки и выполнения хакерского кода на сервере. Привилегия представляет разрешение выполнять операцию DML: select, insert, update, delete, references, all, execute, role; all – это привилегии select, insert, update, delete и references. references – привилегия на ссылку из внешнего ключа на первичный ключ одной таблицы. execute – выполнение хранимой процедуры или вызов её с использованием select. role – Предоставляет все привилегии, назначенные роли. Роль может назначаться пользователям. Думайте о роли, как о ёмкости для набора привилегий. “Другой частью” полномочий является объект, к которому применяется привилегия или для которого она отменяется. Объектом может быть таблица, просмотр, хранимая процедура и роль. Пользователи являются получателями полномочий; они теряют их, когда полномочия отменяются. В качестве пользователя может выступать пользователь, определенный в базе данных безопасности, специальный пользователь или объект базы данных. Пользователь SYSDBA имеет особые права ко всем базам данных и их объектам, независимо от того, какой пользователь ими владеет. Вначале создатель объекта, его владелец, является единственным пользователем, кроме SYSDBA, который имеет доступ к этому объекту, и может позволять получать к нему доступ другим пользователям. Любой из этих пользователей затем может запустить “цепочку” полномочий, предоставляя другим пользователям права назначать привилегии. Такое право может передаваться добавлением слов with grant option к полномочиям. PUBLIC является пользователем, который обозначает всех пользователей в базе данных безопасности. Он не включает в себя хранимые процедуры, триггеры или роли. GRANT UPDATE (C_FIRST, C_LAST, PHONE) ON CUSTOMERS TO PUBLIC Процесс реализации ролей состоит из четырёх шагов: - создание роли с использованием оператора CREATE ROLE; - назначение привилегий этой роли посредством GRANT привилегия TO роль; - назначение роли пользователям посредством GRANT роль TO пользователь; - задание роли вместе с именем пользователя при соединении с БД. Существует две модели Firebird – Суперсервер и классический сервер. Классический сервер выполняется как один серверный процесс на каждое соединение с клиентом. Суперсервер выполняется как один вызов выполняемого модуля, который запускается один раз системным загрузочным скриптом и остаётся запущенным, ожидая запросов на соединение.
Дата добавления: 2014-02-28; просмотров: 515; Нарушение авторских прав Мы поможем в написании ваших работ! |