Безопасность на уровне базыданных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Безопасность на уровне базыданных



Безопасность на уровне базы данных в 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 – Суперсервер и классический сервер.

Классический сервер выполняется как один серверный процесс на каждое соединение с клиентом.

Суперсервер выполняется как один вызов выполняемого модуля, который запускается один раз системным загрузочным скриптом и остаётся запущенным, ожидая запросов на соединение.

Файл конфигурации Firebird

Firebird не требует постоянных серьёзных изменений конфигурации, как это делает большинство других мощных реляционных СУБД.

Файл конфигурации Firebird имеет имя Firebird.conf. Этот файл считывается при каждом запуске Firebird. Параметры конфигурации по умолчанию и их значения отображаются в файле конфигурации с помощью комментариев (первым символом строки является символ #).

Файл конфигурации может быть отредактирован любым текстовым редактором.

Записи имеют форму:

имя — параметра = значение

Для установления значения любого параметра в значение, отличающееся от значения по умолчанию, необходимо удалить маркер комментария (#) и отредактировать значение.

Параметры, связанные с файловой системой:

RootDirectory – задаёт абсолютный путь к корневому каталогу Firebird;

DatabaseAccess – предоставляет возможность ограничения доступа к базам данных. Может иметь значения Full, None, Restrict;

Full (по умолчанию) разрешает доступ к файлам базы данных в любом месте локальной файловой системы;

None позволяет серверу соединяться только с БД, которые указаны в списке aliases.conf (рекомендуется устанавливать этот режим);

Restrict позволяет сконфигурировать размещение доступных для подключения файлов БД, указывая список каталогов файловой системы;

DatabaseAccess = Restrict D:\DATA; D:\DATA\FB;

TempDirectories – список каталогов, где могут сохраняться файлы сортировки;

CpuAffinityMask – под Windows Суперсервер может постоянно переключаться туда и сюда между процессорами на машинах SMP – эффект качелей. Данный параметр должен быть использован для установки одного или более конкретных процессоров для Суперсервера Firebird;

CpuAffinityMask = 1 (Суперсервер запускается только на первом процессоре (CPU 0));

DummyPacketInterval – устанавливает количество секунд (целое число), в течение которых сервер должен ждать молчания клиентского соединения, прежде чем отправить пустой пакет для подтверждения запроса. По умолчанию устанавливается в 0 (отключено) для Firebird 1.5. В ОС Windows он должен быть равен 0 — по причине ошибки в Windows использование ненулевого значения может привести к зависанию или краху ОС Windows на клиентской стороне.

ExternalFileAccess – предоставляет три уровня безопасности в отношении доступа к внешним файлам из таблиц базы данных. Значением могут быть Full, None и Restrict;

None (значение по умолчанию) отключает любое использование внешних файлов сервером;

Restrict предоставляет возможность ограничить размещение внешних файлов для доступа из базы данных конкретными путями;

Full позволяет осуществлять доступ к внешним файлам, находящимся в любом месте системы. Однако уже давно известны возможности использовать внешние таблицы как для перекачивания базы данных с сервера на клиент, так и для внедрения с клиента на сервер вредоносных UDF.



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 80; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.103.209 (0.009 с.)