4.2 Как добавить/удалить пользователя базы данных |
Мало добавить нового пользователя в базу данных, ему еще надо предоставить набор прав (роль) для работы с таблицами (подробнее здесь). Еще раз напомню, что имена пользователей в серверах Firebird версии 2.х хранятся в "секретной" базе данных security2.fdb, а их роли в конкретной базе данных (т.е., в одной базе данных Вася Пупкин может обладать правами "гинеколога", в другой - "администратора"). Поэтому пользователя надо 1) сначала добавить (при помощи утилиты gsec.exe), а затем 2) назначить ему конкретную роль в конкретной базе данных (при помощи утилиты isql.exe). Работа с упомянутыми утилитами осуществляется из командной строки. В Windows для этих целей предназначена специальная программа cmd.exe, которую можно вызвать следующим образом Пуск → Выполнить
затем вводим текст cmd
И нажимаем "ОК". Откроется консольное окно,
где можно вводить интерактивные команды. Поскольку обе утилиты находятся в каталоге (по умолчанию) Х:\Program Files\Firebird\Firebird_2_1\bin\ (Х - диск, где установлена Windows)
то для непосредственной работы с каждой из них перейдем в этот каталог. Набираем в командной строке следующий текст (не имеет значения - строчными или заглавными) cd c:\program files\firebird\firebird_2_1\bin\ и нажимаем "Enter"
Теперь можно работать с любой из нужных нам утилит из командной строки. Работа с утилитой gsec.exe Предназначена для добавления/удаления пользователей сервера, изменения их пароля и некоторых других данных. Работает с "секретной" базой данных сервера security2.fdb. Особенности работы с ней описаны в специальной документации, я остановлюсь на тех действиях, которые могут пригодится Вам. Коннектимся к БД с юзерами под логином и паролем администратора (по умолчанию у нас это SYSDBA и cooladmin соответственно) - набираем в командной строке gsec -user sysdba -password cooladmin
и нажимаем "Enter".
Если коннект c security2.fdb прошел успешно, то должна появиться строка-приглашение GSEC> для дальнейшего ввода команд
Теперь собственно можно подробнее и о командах.
? или help и жмем "Enter".
Получаем интерактивную справку по
Перевод
display
и жмем "Enter". Получаем список всех пользователей
add grisha -pw DOCtor36
и нажмите "Enter". Пользователь с таким именем и паролем добавлен.
Чтобы проверить это, наберите в командной строке display и убедитесь в этом сами
modify grisha -pw wow12345
и нажмите "Enter" - пароль сменен. Примечание: имя пользователя (логин) изменить нельзя. Вы можете удалить его и внести заново с нужными корректировками.
delete grisha
и нажмите "Enter". Пользователь удален. Чтобы убедиться в этом, набираем display и вновь жмем "Enter"
Для выхода из интерактивного режима работы с gsec введите в командной строке quit
Работа с утилитой isql.exe Предназначена для непосредственной работы с пользовательской базой данных (т.е. с той БД, с которой работает и наша программа). Я опишу здесь только те функции, которые необходимы для раздачи прав (назначения роли) вновь добавленным пользователям. Особенности работы с ней описаны в специальной документации, например здесь и здесь. Поскольку эта утилита (как и gsec.exe) находится по умолчанию в каталоге Х:\Program Files\Firebird\Firebird_2_1\bin\ (Х - диск, где установлена Windows) и работает через командную строку, то сначала нам нужно открыть консоль и перейти в указанный каталог (подробнее об этом выше). Затем вводим в командную строку команду для запуска утилиты isql
и жмем "Enter". Выскочит подсказка-предупреждение
"Используйте CONNECT или СREАТЕ DATABASE для указания базы данных". Хорошо, последуем совету и наберем в командной строке для соединения с нашей БД connect 'c:\my_db\base_v4x_1010_04_ver4.fdb' user 'sysdba' password 'cooladmin';
и нажмем "Enter". Появится надпись, показывающая текущее соединение с указанной базой и от имени указанного пользователя,
а также строку-приглашение SQL> для дальнейшего ввода команд. Перед тем, как назначить роль вновь добавленному юзеру (в нашем примере выше это был Grisha), вспомним, какие роли существуют в базе данных. Набираем в командной строке (указано стрелкой) show role; и жмем "Enter". Получаем список ролей, который является базовым для данной БД (я о нем упоминал ранее)
grant urolog to grisha; и нажмите "Enter"
Теперь GRISHA будет обладать в этой базе данных правами уролога.
revoke urolog fron grisha; и нажмите "Enter"
Затем назначьте grisha роль GINEKOLOG аналогичным выше описанному способом grant ginekolog to grisha;
Теперь grisha может работать с базой данных в группе ГИНЕКОЛОГ.
? или help
Для выхода из интерактивного режима работы с isql наберите в командной строке quit; и нажмите "Enter".
|