Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

Любая библиотека встроенного сервера, размещенная на машине, где находится и база данных, потенциально является Троянским конем. На уровне сервера средства безопасности оперируют в предположении, что любой пользователь, соединяющийся с базой данных, будет идентифицироваться через базу данных безопасности security.fdb. Однако, когда встроенный сервер подключает клиента, идентификация пользователя с его паролем пропускается. Поскольку любой пользователь способен соединиться с любой базой данных, безопасность сервера будет легко отменена, если только серверная машина не будет защищена физически.

Можно написать приложение встроенного сервера, которое "соединится как пользователь SYSDBA", используя вообще что угодно в качестве пароля SYSDBA. Не существует никакого способа, чтобы сервер сообщил, что пользователь SYSDBA "прошел через стеклянный потолок" без допустимого пароля. Если SYSDBA активен в любой базе данных, то этот пользователь сможет соединяться и вытворять все, что ему захочется без каких-либо ограничений. Любой, кто имеет доступ к вашей сети и имеет привилегии к файловой системе на сервере, может установить злонамеренное приложение встроенного сервера, которое сможет читать и писать любые данные в ваши базы данных или вовсе их удалить.

Помните, что база данных безопасности (security.fdb) является такой же базой данных, как и другие. Пользователь SYSDBA имеет к ней специальные привилегии SQL - как и ко всем базам данных - для создания, модификации и удаления чего угодно.

Подготовленная машина для баз данных защищена от физических вторжений и неавторизованного доступа к файловой системе, "вошедший" в базу данных пользователь, не являющийся SYSDBA, будет субъектом обычных ограничений привилегий SQL. Привилегии SQL к объектам данных в базах данных Firebird применяются на основе "участия" - никакой пользователь, за исключением SYSDBA и владельца базы данных, не имеет автоматических прав к любым объектам любых баз данных.

Поэтому все еще необходимо предоставить способ для пользователя (или приложения) передавать имя пользователя и, желательно, роль обычной процедуре подключения. Разработчики должны предоставлять и привилегии защиты, и охранную процедуру.

См. главы 34 и 35 по вопросам безопасности доступа к серверу и привилегиям SQL к объектам базы данных.

<p>Совместимость нескольких серверов</p>

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

Обычные серверы Firebird и InterBase могут без конфликтов одновременно выполняться на машине, на которой запущены встроенные серверы. Для доступа локального клиента следует обратить внимание на исключение конфликта пространства имен между обычными клиентскими библиотеками (gds32.dll и fbclient.dll) и именем, выбранным для библиотеки встроенного сервера.

"Клиентская" часть fbembed.dll может быть обычным, удаленным клиентом других серверов; в то же самое время она внутренне связывается со своим встроенным сервером.

<p>Останов встроенного сервера</p>

Выполнение встроенного сервера не может быть остановлено кроме как при завершении клиентского приложения. Ваше приложение должно завершаться с обычным завершением транзакций и отключением от всех баз данных.

<p>Модули внешних кодов</p>

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

* Внешние функции: Firebird "путешествует налегке" в отношении встроенных функций. Вместо того чтобы навешивать на сервер огромную библиотеку скрытых функций, Firebird позволяет разработчикам выбрать - и, при необходимости, определить- их собственные библиотеки внешних функций, которые соответствуют потребностям вычислений и выражений в их базах данных. Функции, определенные пользователем (User-Defined Function, UDF), добавляют высокую гибкость в среду вашей базы данных. UDF являются расширением функций сервера Firebird на серверной стороне; они объявляются для баз данных и выполняются в контексте серверного процесса.

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

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT