Безопасность доступа

Безопасность доступа

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

Если база данных еще не существует, и вы запустили из командной строки isql без параметров, то произойдут две вещи:

* вы соединяетесь с сервером;

* пока вы не отправите на сервер запрос CONNECT или CREATE DATABASE, программа не будет соединена с базой данных.

Пароль доступа всегда требуется для соединения с сервером. После этого вы можете соединяться с любой базой данных. Что вы можете делать, соединившись с базой данных, зависит от привилегий SQL, которые хранятся в базе данных. Пользователь SYSDBA имеет полные разрушительные права к любой базе данных и к любому ее объекту. Владелец (пользователь, создавший базу данных) имеет автоматические права к базе данных, но не к объектам, которые были созданы другими пользователями. Хотя любой пользователь, соединившись с сервером, может соединяться с любой базой данных, у него не будет прав делать что угодно с чем угодно, отличных от прав, которые были предоставлены ему явно или неявно владельцем базы данных операторами GRANT.

Вопросы доступа к серверу и безопасности базы данных подробно обсуждаются в части VIII.

ISC_USER и ISC_PASSWORD

На сервере можно установить две переменные окружения: ISC_USER и ISC_PASSWORD, чтобы избежать необходимости явно записывать пароли в скриптах. Вы можете делать все, что разрешено указанному пользователю. Эта возможность удобна для административных задач, однако она должна быть использована с большой осторожностью, потому что оставляет доступ к вашей базе данных открытым для любого локального пользователя, кто случайно натолкнется на ваше окно командной строки.

Если вы хотите играть с огнем, сделайте эти две переменные постоянными. Если же вы хотите иметь высокий уровень удобства и защищенности скриптов, временно устанавливайте их каждый раз при работе и не забывайте отменять установку при завершении работы с окном командной строки.

В Linux в том же окне командной строки, из которого вы запускали приложение, введите:

]# setenv ISC_USER=SYSDBA

]# setenv ISC_PASSWORD=masterkey

Для отмены установок используйте следующее:

]# setenv ISC_USER=

]# setenv ISC_PASSWORD=

или просто закройте окно.

В Windows в командной строке введите:

set ISC_USER=SYSDBA

set ISC_PASSWORD=masterkey

Для отмены введите:

set ISC_USER=

set ISC_PASSWORD=