4.2 Как добавить/удалить пользователя базы данных
Справка "АРМ Доктор" > 4. Как это сделать >
4.2 Как добавить/удалить пользователя базы данных
Previous Next
 
 

Внимание!

Этот раздел справки написан для так называемых "продвинутых пользователей". Поэтому, ничего не делайте с сервером, если Вы не имеете ни малейшего понятия о консольных приложениях и командной строке

 

   

    Мало добавить нового пользователя в базу данных, ему еще надо предоставить набор прав (роль) для работы с таблицами (подробнее здесь). Еще раз напомню, что имена пользователей в серверах 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> для дальнейшего ввода команд

   

Теперь собственно можно подробнее и о командах.

 

  • Получение справки по gsec.exe - набираем в строке

? или help

и жмем "Enter". Получаем интерактивную справку по товарам и услугам командам и опциям

   

Перевод

gsec - утилита управление базой данных паролей пользователей

   использование в режиме командной строки:
     gsec [ <опция> ... ] <команда> [ <параметр> ... ]

   интерактивный режим:
     gsec [ <опции> ... ]
     GSEC>
     <команда> [ <параметр> ... ]

   возможные опции:
     -user <имя администратора базы данных>
     -password <пароль администратора базы данных>
     -role <имя SQL-роли администратора базы данных>
     -database <база данных паролей>
     -z

   возможные команды:
     добавление нового пользователя:
       add <имя> [ <параметр> ... ]
     удаление пользователя:
       delete <имя>
     вывод информации обо всех зарегистрированных пользователях:
       display
     вывод информации только об одном из пользователей:
       display <имя>
     изменение информации о пользователе:
       modify <имя> <параметр> [ <параметр> ... ]
     помощь:
       ? (только в интерактивном режиме)
       help
     вывести информацию о версии:
       z (только в интерактивном режиме)
     выход из интерактивного режима:
       quit (только в интерактивном режиме)

   возможные параметры:
     -pw <пароль>
     -uid <uid>
     -gid <uid>
     -fname <имя>
     -mname <отчество>
     -lname <фамилия>

 

    display

   

и жмем "Enter". Получаем список всех пользователей

   

Примечание: данная команда никогда не будет отображать пароли пользователей.

  • Добавление пользователя - чтобы добавить в базу сервера пользователя (например с именем "Grisha" и паролем "DOCtor36"), наберите в командной строке

    add grisha -pw DOCtor36

   

и нажмите "Enter". Пользователь с таким именем и паролем добавлен.

 

Помните: настоятельно рекомендуется имена пользователей и пароли вводить на латинице! Также не рекомендуется первым символом пароля делать цифру.

 

    Чтобы проверить это, наберите в командной строке display и убедитесь в этом сами

   

 

  •     Изменение пароля пользователя - чтобы сменить пароль пользователя (например у юзера "Grisha" был пароль "DOCtor36", а мы хотим сменить его на "wow12345"), наберите в командной строке

    modify grisha -pw wow12345

и нажмите "Enter" - пароль сменен.

    Примечание: имя пользователя (логин) изменить нельзя. Вы можете удалить его и внести заново с нужными корректировками.

 

  •     Удаление пользователя - чтобы удалить пользователя (например юзера 'GRISHA'), наберите в командной строке

    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';

 

   

 

Обратите внимание: что в моем примере после команды connect идет указание полного пути к базе данных ( цифра 3) и название самой БД, в которую мы хотим добавить роль для юзера (цифра 4). Этот полный путь должен быть заключен в апострофы с обеих сторон (требование синтаксиса). Далее указывается имя и пароль администратора сервера, которые также заключаются в кавычки (цифра 5). И в конце строки обязательно необходимо поставить точку с запятой (цифра 6).

и нажмем "Enter". Появится надпись, показывающая текущее соединение с указанной базой и от имени указанного пользователя,

   

а также строку-приглашение SQL> для дальнейшего ввода команд.

    Перед тем, как назначить роль вновь добавленному юзеру (в нашем примере выше это был Grisha), вспомним, какие роли существуют в базе данных. Набираем в командной строке (указано стрелкой)

    show role;

и жмем "Enter". Получаем список ролей, который является базовым для данной БД (я о нем упоминал ранее)

   

  •     Назначение роли пользователю - чтобы назначить юзеру Grisha права, например, UROLOG, наберите в командной строке

    grant urolog to grisha;

и нажмите "Enter"

   

Теперь GRISHA будет обладать в этой базе данных правами уролога.

 

  •     Назначение новой роли пользователю - чтобы назначить новые права (роль) пользователю (например, Вы хотите "переквалифицировать" юзера Grisha из уролога в гинекологи), сначала необходимо "отобрать" у него права UROLOG, а затем вновь назначить роль, но уже GINEKOLOG. Итак, введите в командной строке

    revoke urolog fron grisha;

и нажмите "Enter"

   

Затем назначьте grisha роль GINEKOLOG аналогичным выше описанному способом

    grant ginekolog to grisha;

   

Теперь grisha может работать с базой данных в группе ГИНЕКОЛОГ.

 

  •     Получение справки по isql -  чтобы посмотреть встроенную справку по командам и опциям, наберите в командной строке

? или help

   

Для выхода из интерактивного режима работы с isql наберите в командной строке

    quit;

и нажмите "Enter".

   

 

 

© Leybasoft, 2012 г.

 

Используются технологии uCoz