FirebirdSQL logo

Виртуальные таблицы безопасности имеют префикс имени SEC$. Они отображают данные из текущей базы данных безопасности.Эти таблицы являются виртуальными в том смысле, что до обращения к ним со стороны пользователя, никаких данных в них не записано.Они заполняются данными только в момент запроса пользователя.При этом описания этих таблиц в базе данных присутствуют постоянно.В этом смысле эти виртуальные таблицы подобны таблицам семейства MON$, используемых для мониторинга сервера.

Безопасность:* Полный доступ ко всей информации, предоставляемой таблицами безопасности, имеют SYSDBA и владелец базы данных;
  • Обычные пользователи ограничены информацией о самих себе, другие пользователи невидимы для них.

Important

Эти функции во многом зависят от плагина управления пользователями.Имейте в виду, что некоторые опции игнорируются при использовании устаревшего плагина управления пользователями.

Виртуальные таблицы безопасности
SEC$GLOBAL_AUTH_MAPPING

Сведения о глобальных отображениях.

SEC$USERS

Список пользователей в текущей базе данных безопасности.

SEC$USER_ATTRIBUTES

Сведения о дополнительных атрибутах пользователей.

SEC$GLOBAL_AUTH_MAPPING

Сведения о глобальных отображениях.

Table 1. Описание столбцов таблицы SEC$GLOBAL_AUTH_MAPPING
Наименование столбца Тип данных Описание

SEC$MAP_NAME

CHAR(63)

Имя глобального отображения.

SEC$MAP_USING

CHAR(1)

Является ли аутентификация общесерверной (S) или обычной (P).

SEC$MAP_PLUGIN

CHAR(63)

Имя плагина аутентификации, из которого происходит отображение.

SEC$MAP_DB

CHAR(63)

Имя базы данных, в которой прошла аутентификация. Из неё происходит отображение.

SEC$MAP_FROM_TYPE

CHAR(63)

Тип объекта, который будет отображён.

SEC$MAP_FROM

CHAR(255)

Имя объекта, из которого будет произведено отображение.

SEC$MAP_TO_TYPE

SMALLINT

Тип объекта, в который будет произведено отображение:

0 — USER;
1 — ROLE.

SEC$MAP_TO

CHAR(63)

Наименование объекта, в который будет произведено отображение(имя пользователя или роли).

RDB$SYSTEM_FLAG

SMALLINT

Является ли отображение системным:

0 — определено пользователем;
1 — определено системой.

RDB$DESCRIPTION

BLOB TEXT

Текстовое описание отображения.

SEC$USERS

Список пользователей в текущей базе данных безопасности.

Table 1. Описание столбцов таблицы SEC$USERS
Наименование столбца Тип данных Описание

SEC$USER_NAME

CHAR(63)

Имя пользователя.

SEC$FIRST_NAME

VARCHAR(32)

Первое имя (имя).

SEC$MIDDLE_NAME

VARCHAR(32)

Среднее имя (отчество).

SEC$LAST_NAME

VARCHAR(32)

Последнее имя (фамилия).

SEC$ACTIVE

BOOLEAN

Флаг активности пользователя.

SEC$ADMIN

BOOLEAN

Отражает, имеет ли пользователь права RDB$ADMIN в базе данныхбезопасности.

SEC$DESCRIPTION

BLOB TEXT

Комментарий к пользователю.

SEC$PLUGIN

CHAR(63)

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

SEC$USER_ATTRIBUTES

Сведения о дополнительных атрибутах пользователей.

Table 1. Описание столбцов таблицы SEC$USER_ATTRIBUTES
Наименование столбца Тип данных Описание

SEC$USER_NAME

CHAR(63)

Имя пользователя.

SEC$KEY

VARCHAR(63)

Имя атрибута.

SEC$VALUE

VARCHAR(255)

Значение атрибута.

SEC$PLUGIN

CHAR(63)

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

Example 1. Отображение списка пользователей и их атрибутов
SELECT CAST(U.SEC$USER_NAME AS CHAR(20)) AS LOGIN,
    CAST(A.SEC$KEY AS CHAR(10)) AS TAG,
    CAST(A.SEC$VALUE AS CHAR(20)) AS "VALUE",
    U.SEC$PLUGIN AS "PLUGIN"
FROM SEC$USERS U LEFT JOIN SEC$USER_ATTRIBUTES A
    ON U.SEC$USER_NAME = A.SEC$USER_NAME
   AND U.SEC$PLUGIN = A.SEC$PLUGIN;
   LOGIN                TAG        VALUE                PLUGIN
   ==================== ========== ==================== ==========================
   SYSDBA               <null>     <null>               Srp
   ALEX                 B          x                    Srp
   ALEX                 C          sample               Srp
   SYSDBA               <null>     <null>               Legacy_UserManager