Безопасность доступа
Безопасность доступа
Для новичков не всегда бывает очевидным, что существует разница между доступом к серверу и безопасностью базы данных. Когда вы соединяетесь с базой данных 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=