FirebirdSQL logo

Использование роли RDB$ADMIN в gsec

Для управления пользователями через утилиту gsec роль RDB$ADMIN должна быть указана в переключателе -role.

AUTO ADMIN MAPPING

Операционная система

только Windows.

Администраторы операционной системы Windows автоматически не получают права SYSDBA при подключении к базе данных (если, конечно, разрешена доверенная авторизация). Имеют ли администраторы автоматические права SYSDBA зависит от установки значения флага AUTO ADMIN MAPPING.Это флаг в каждой из баз данных, который по умолчанию выключен.Если флаг AUTO ADMIN MAPPING включен, то он действует, когда администратор Windows:

  1. подключается с помощью доверенной аутентификации

  2. не определяет никакой роли при подключении.

После успешного “auto admin” подключения текущей ролью будет являться RDB$ADMIN.

docnext count = 3

Включение и выключение AUTO ADMIN MAPPING в обычной базе данных

Включение и выключение флага AUTO ADMIN MAPPING в обычной базе данных осуществляется следующим образом:

ALTER ROLE RDB$ADMIN SET AUTO ADMIN MAPPING -- включение

ALTER ROLE RDB$ADMIN DROP AUTO ADMIN MAPPING -- выключение

Эти операторы могут быть выполнены пользователями с достаточными правами, а именно:

Note

Оператор

ALTER ROLE RDB$ADMIN SET AUTO ADMIN MAPPING

является упрощённым видом оператора создания отображения предопределённой группы DOMAIN_ANY_RID_ADMINS на роль RDB$ADMIN.

CREATE MAPPING WIN_ADMINS
USING PLUGIN WIN_SSPI
FROM Predefined_Group
DOMAIN_ANY_RID_ADMINS
TO ROLE RDB$ADMIN;

Соответственно оператор

ALTER ROLE RDB$ADMIN DROP AUTO ADMIN MAPPING

эквивалентен оператору

DROP MAPPING WIN_ADMINS;

В обычных базах данных статус AUTO ADMIN MAPPING проверяется только во время подключения.Если Администратор имеет роль RDB$ADMIN потому, что произошло автоматическое отображение во время входа, то он будет удерживать эту роль на протяжении всей сессии, даже если он или кто-то другой в это же время выключает автоматическое отображение.

Точно также, включение AUTO ADMIN MAPPING не изменит текущую роль в RDB$ADMIN для Администраторов, которые уже подключились.

Включение и выключение AUTO ADMIN MAPPING в базе данных безопасности

Оператором ALTER ROLE RDB$ADMIN невозможно включить или выключить флаг AUTO ADMIN MAPPING в базе данных пользователей.Однако вы можете создать глобальное отображение предопределённой группы DOMAIN_ANY_RID_ADMINS на роль RDB$ADMIN следующим образом:

CREATE GLOBAL MAPPING WIN_ADMINS
USING PLUGIN WIN_SSPI
FROM Predefined_Group
DOMAIN_ANY_RID_ADMINS
TO ROLE RDB$ADMIN;

Кроме того для включения AUTO ADMIN MAPPING в базе данных пользователей можно использовать утилиту командной строки gsec:

gsec -mapping set

gsec -mapping drop
Note

В зависимости от административного статуса текущего пользователя для утилиты gsec может потребоваться больше параметров, таких как -user и -pass, или -trusted.

Только SYSDBA может включить AUTO ADMIN MAPPING, если он выключен, но любой администратор может выключить его.

При выключении AUTO ADMIN MAPPING пользователь отключает сам механизм, который предоставлял ему доступ и, таким образом, он не сможет обратно включить AUTO ADMIN MAPPING.Даже в интерактивном gsec сеансе новая установка флага сразу вступает в силу.

Администраторы

Администратор — это пользователь, которые имеет достаточные права для чтения и записи, создания, изменения и удаления любого объекта в базе данных.В таблице показано, как привилегии “Суперпользователя” включены в различных контекстах безопасности Firebird.

Table 1. Администраторы
Пользователь Роль RDB$ADMIN Замечание

SYSDBA

Автоматически

Существует автоматически на уровне сервера. Имеет полныепривилегии ко всем объектам во всех базах данных. Можетсоздавать, изменять и удалять пользователей, но не имеет прямогодоступа к базе данных безопасности.

Пользователь root в POSIX

Автоматически

Так же как SYSDBA. Только в Firebird Embedded.

Суперпользователь в POSIX

Автоматически

Так же как SYSDBA. Только в Firebird Embedded.

Владелец базы данных

Автоматически

Так же как SYSDBA, но только в этой базе данных.

Администраторы Windows

Устанавливается в CURRENT_ROLE, если вход успешен

Так же как SYSDBA, если соблюдены следующие условия:

  • В файле конфигурации firebird.conf (параметр AuthServer) в списке плагинов присутствовал провайдер Win_Sspi.Кроме того, этот плагин должен присутствовать и в списке плагинов клиентской стороны (параметр AuthClient).

  • Во всех базах данных, где требуется полномочия суперпользователя должен быть включен AUTO ADMIN MAPPING или создано отображение предопределенной группы DOMAIN_ANY_RID_ADMINS на роль RDB$ADMIN.

  • При входе не указана роль.

Обычный пользователь

Должна быть предварительно выдана и должна быть указана при входе

Так же как SYSDBA, но только в тех базах данных, где эта роль предоставлена.

Пользователь POSIX

Должна быть предварительно выдана и должна быть указана при входе

Та кже как SYSDBA, но только в тех базах данных, где эта роль предоставлена.Только в Firebird Embedded.

Пользователь Windows

Должна быть предварительно выдана и должна быть указана при входе

Так же как SYSDBA, но только в тех базах данных, где эта роль предоставлена.Доступно только если в файле конфигурации firebird.conf(параметр AuthServer) в списке плагиновприсутствовал провайдер Win_Sspi. Кроме того, этот плагин долженприсутствовать и в списке плагинов клиентской стороны (параметр AuthClient).