FirebirdSQL logo

RDB$INDEX_SEGMENTS

Сегменты и позиции индексов.Таблица описывает все столбцы таблицы, входящие в состав конкретного индекса.Для каждого столбца индекса создаётся отдельная строка в данной таблице.

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

RDB$INDEX_NAME

CHAR(63)

Имя индекса, к которому относится данный сегмент. Должносоответствовать главной записи в системной таблицеRDB$INDICES.

RDB$FIELD_NAME

CHAR(63)

Имя одного из столбцов, входящего в состав индекса. Должносоответствовать значению в столбце RDB$FIELD_NAME в таблицеRDB$RELATION_FIELDS.

RDB$FIELD_POSITION

SMALLINT

Позиция столбца в индексе. Нумерация начинается с нуля.

RDB$STATISTICS

DOUBLE PRECISION

Последнее известное (рассчитанное) значение селективности индексапо данному столбцу.

RDB$BACKUP_HISTORY

Таблица хранит историю копирования базы данных при помощи утилиты nbackup.

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

RDB$BACKUP_ID

INTEGER

Присваиваемый ядром идентификатор.

RDB$TIMESTAMP

DATE

Дата и время выполнения копирования.

RDB$BACKUP_LEVEL

INTEGER

Уровень копирования.

RDB$GUID

CHAR(38)

Уникальный идентификатор.

RDB$SCN

INTEGER

Системный номер.

RDB$FILE_NAME

VARCHAR(255)

Полный путь и имя файла копии.

docnext count = 29

RDB$INDICES

Определение индексов базы данных (созданных пользователем или системой). Описывает каждый индекс, созданный пользователем или системой.Для каждого столбца таблицы, входящего в состав индекса, присутствует строка системной таблицы RDB$INDEX_SEGMENTS, где описываются характеристики столбца индекса.

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

RDB$INDEX_NAME

CHAR(63)

Уникальное имя индекса, заданное пользователем или автоматическисгенерированное системой.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, к которой применяется индекс. СоответствуетRDB$RELATION_NAME в строке таблицы RDB$RELATIONS.

RDB$INDEX_ID

SMALLINT

Внутренний (системный) идентификатор индекса.

RDB$UNIQUE_FLAG

SMALLINT

Указывает, является ли индекс уникальным:

0 — не уникальный;
1 — уникальный.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст комментария к индексу.

RDB$SEGMENT_COUNT

SMALLINT

Количество сегментов (столбцов) в индексе.

RDB$INDEX_INACTIVE

SMALLINT

Указывает, является ли в настоящий момент индекс активным:

0 — активный;
1 — неактивный;
3 — состояние только для Foreign Key. Это состояние существует только во время восстановления данных.Оно необходимо чтобы различать частично “неактивное” состояние некоторых индексов от неактивного состояния всех индексов (gbak -i).

RDB$INDEX_TYPE

SMALLINT

Направление индекса:

0 — ascending;
1 — descending.

RDB$FOREIGN_KEY

CHAR(63)

Имя ассоциированного ограничения внешнего ключа, еслисуществует.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, является ли индекс определённым системой (значение 1или выше) или пользователем (значение 0).

RDB$EXPRESSION_BLR

BLOB BLR

Выражение, записанное на языке двоичного представления (BLR).Используется для вычисления значений ключей для индексов по выражению.

RDB$EXPRESSION_SOURCE

BLOB TEXT

Исходный текст выражения для вычисляемых индексов.

RDB$STATISTICS

DOUBLE PRECISION

Хранит самую последнюю селективность индекса, вычисленную припомощи оператора SET STATISTICS.

RDB$CONDITION_BLR

BLOB BLR

Выражение, записанное на языке двоичного представления (BLR).Используется для ограничения набора индексируемых записей.

RDB$CONDITION_SOURCE

BLOB TEXT

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

RDB$KEYWORDS

Ключевые и зарезервированные слова.

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

RDB$KEYWORD_NAME

CHAR(63)

Ключевое слово.

RDB$KEYWORD_RESERVED

BOOLEAN

Является ли ключевое слово зарезервированным.

RDB$LOG_FILES

В настоящей версии не используется.

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

RDB$FILE_NAME

VARCHAR(255)

Не используется.

RDB$FILE_SEQUENCE

SMALLINT

Не используется.

RDB$FILE_LENGTH

INTEGER

Не используется.

RDB$FILE_PARTITIONS

SMALLINT

Не используется.

RDB$FILE_P_OFFSET

INTEGER

Не используется.

RDB$FILE_FLAGS

SMALLINT

Не используется.

RDB$PACKAGES

Сведения о PSQL пакетах.

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

RDB$PACKAGE_NAME

CHAR(63)

Уникальное имя пакета.

RDB$PACKAGE_HEADER_SOURCE

BLOB TEXT

Исходный код заголовка пакета на языке SQL.

RDB$PACKAGE_BODY_SOURCE

BLOB TEXT

Исходный код тела пакета на языке SQL.

RDB$VALID_BODY_FLAG

SMALLINT

Указывает, остаётся ли текст тела пакета корректным послепоследнего изменения заголовка пакета или его пересоздания.

RDB$SECURITY_CLASS

CHAR(63)

Может указывать на класс безопасности, определённый в системнойтаблице RDB$SECURITY_CLASSES, для применения ограничений управлениядоступом.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя – владельца (создателя) пакета.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, что пакет определён пользователем (значение 0) илисистемой (значение 1 или выше).

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к пакету.

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется процедуры и функции пакета:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER).

RDB$PAGES

Сведения о страницах базы данных.

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

RDB$PAGE_NUMBER

INTEGER

Уникальный номер физически созданной страницы базыданных.

RDB$RELATION_ID

SMALLINT

Идентификатор таблицы, для которой выделена эта страница.

RDB$PAGE_SEQUENCE

INTEGER

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

RDB$PAGE_TYPE

SMALLINT

Описывает тип страницы. Для системного использования.

RDB$PROCEDURE_PARAMETERS

Описывает параметры хранимых процедур.

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

RDB$PARAMETER_NAME

CHAR(63)

Имя параметра.

RDB$PROCEDURE_NAME

CHAR(63)

Имя процедуры, в которой используется параметр.

RDB$PARAMETER_NUMBER

SMALLINT

Последовательный номер параметра.

RDB$PARAMETER_TYPE

SMALLINT

Указывает, является ли параметр входным (значение 0) или выходным(значение 1).

RDB$FIELD_SOURCE

CHAR(63)

Имя домена, созданного пользователем (при использовании ссылки надомен вместо типа), или домена, автоматически построенного системойдля параметра процедуры. Во втором случае имя будет начинаться ссимволов RDB$.

RDB$DESCRIPTION

BLOB TEXT

Текст произвольного примечания к параметру.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, является ли параметр определённым системой (значение 1и выше) или пользователем (значение 0).

RDB$DEFAULT_VALUE

BLOB BLR

Значение по умолчанию на языке BLR.

RDB$DEFAULT_SOURCE

BLOB TEXT

Значение по умолчанию в исходном виде на языке SQL.

RDB$COLLATION_ID

SMALLINT

Идентификатор используемого порядка сортировки для символьногопараметра.

RDB$NULL_FLAG

SMALLINT

Признак допустимости пустого значения NULL.

RDB$PARAMETER_MECHANISM

SMALLINT

Механизм передачи параметра:

0 — по значению;
1 — по ссылке;
2 — через дескриптор;
3 — через дескриптор BLOB.

RDB$FIELD_NAME

CHAR(63)

Имя столбца, на которое ссылается параметр с помощью предложенияTYPE OF COLUMN.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, на которую ссылается параметр с помощью предложенияTYPE OF COLUMN.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета процедуры (если процедура упакованная), в которойиспользуется параметр.

RDB$PROCEDURES

Описывает хранимые процедуры.

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

RDB$PROCEDURE_NAME

CHAR(63)

Имя хранимой процедуры.

RDB$PROCEDURE_ID

SMALLINT

Уникальный идентификатор процедуры.

RDB$PROCEDURE_INPUTS

SMALLINT

Указывает количество входных параметров или их отсутствие(значение NULL).

RDB$PROCEDURE_OUTPUTS

SMALLINT

Указывает количество выходных параметров или их отсутствие(значение NULL).

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к процедуре.

RDB$PROCEDURE_SOURCE

BLOB TEXT

Исходный код процедуры на языке SQL.

RDB$PROCEDURE_BLR

BLOB BLR

Двоичное представление (BLR) кода процедуры.

RDB$SECURITY_CLASS

CHAR(63)

Может указывать на класс безопасности, определённый в системнойтаблице RDB$SECURITY_CLASSES, для применения ограничений управлениядоступом.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) процедуры.

RDB$RUNTIME

BLOB

Описание метаданных процедуры. Внутреннее использование дляоптимизации.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, что процедура определена пользователем (значение 0)или системой (значение 1 или выше).

RDB$PROCEDURE_TYPE

SMALLINT

Тип процедуры:

1 — селективная хранимая процедура (содержит в своём составе оператор SUSPEND);
2 — выполняемая хранимая процедура.

RDB$VALID_BLR

SMALLINT

Указывает, остаётся ли текст хранимой процедуры корректным послепоследнего изменения процедуры при помощи оператора ALTER PROCEDURE.

RDB$DEBUG_INFO

BLOB

Содержит отладочную информацию о переменных, используемых вхранимой процедуре.

RDB$ENGINE_NAME

CHAR(63)

Имя движка для использования внешних процедур. Обычно UDR.

RDB$ENTRYPOINT

CHAR(255)

Имя точки входа в библиотеке, где находится эта процедура.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета, если процедура является упакованной.

RDB$PRIVATE_FLAG

SMALLINT

Для неупакованных хранимых процедур всегда NULL, для упакованных

0 — если процедура описана в заголовке пакета и
1 — если процедура описана или реализована только в теле пакета (не описана взаголовке).

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется процедура:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER);
NULL — привилегии выполнения наследуется от пакета.

RDB$PUBLICATION_TABLES

Таблицы включенные в набор репликации (публикацию).

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

RDB$PUBLICATION_NAME

CHAR(63)

Имя публикации.

RDB$TABLE_NAME

CHAR(63)

Имя таблицы.

RDB$PUBLICATIONS

Публикации.Публикация — набор таблиц для репликации.

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

RDB$PUBLICATION_NAME

CHAR(63)

Имя публикации.

RDB$OWNER_NAME

CHAR(63)

Владелец. Имя пользователя, создавшего публикацию.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, что публикация определена пользователем (значение 0)или системой (значение 1 или выше).

RDB$ACTIVE_FLAG

SMALLINT

Активная ли публикация. 1 — публикация активна, 0 — публикацияотключена.

RDB$AUTO_ENABLE

SMALLINT

Признак автоматического добавления новых таблиц в публикацию.

1 — новые таблицы автоматически добавляются в публикацию,
0 — не добавляются (требуется ручное добавление).

Note

В Firebird 4.0 может быть только одна системная публикация — публикация по умолчанию с именем RDB$DEFAULT.В следующий версиях Firebird будет возможность создавать несколько пользовательских публикаций.

RDB$REF_CONSTRAINTS

Описания именованных ограничений базы данных (внешних ключей).

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

RDB$CONSTRAINT_NAME

CHAR(63)

Имя ограничения внешнего ключа. Задаётся пользователем илиавтоматически генерируется системой.

RDB$CONST_NAME_UQ

CHAR(63)

Имя ограничения первичного или уникального ключа, на котороессылается предложение REFERENCES в данном ограничении.

RDB$MATCH_OPTION

CHAR(7)

Не используется. Текущим значением является FULL во всехслучаях.

RDB$UPDATE_RULE

CHAR(11)

Действия по ссылочной целостности, применимые к данному внешнемуключу, когда изменяется первичный (уникальный) ключ родительскойтаблицы: RESTRICT, NO ACTION, CASCADE, SET NULL, SET DEFAULT.

RDB$DELETE_RULE

CHAR(11)

Действия по ссылочной целостности, применимые к данному внешнемуключу, когда удаляется первичный (уникальный) ключ родительскойтаблицы: RESTRICT, NO ACTION, CASCADE, SET NULL, SET DEFAULT.

RDB$CHARACTER_SETS

Содержит наборы символов, доступные в базе данных.

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

RDB$CHARACTER_SET_NAME

CHAR(63)

Имя набора символов.

RDB$FORM_OF_USE

CHAR(63)

Не используется.

RDB$NUMBER_OF_CHARACTERS

INTEGER

Количество символов в наборе. Для существующих наборов символовне используется.

RDB$DEFAULT_COLLATE_NAME

CHAR(63)

Имя порядка сортировки по умолчанию для набора символов.

RDB$CHARACTER_SET_ID

SMALLINT

Уникальный идентификатор набора символов.

RDB$SYSTEM_FLAG

SMALLINT

Системный флаг: имеет значение 1, если набор символов былопределён в системе при создании базы данных; значение 0 для наборасимволов, определённого пользователем.

RDB$DESCRIPTION

BLOB TEXT

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

RDB$FUNCTION_NAME

CHAR(63)

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

RDB$BYTES_PER_CHARACTER

SMALLINT

Количество байтов для представления одного символа.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблицеRDB$SECURITY_CLASSES для применения ограничений управления доступомдля всех пользователей этого набора символов.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) набора символов.

RDB$RELATION_CONSTRAINTS

Описание всех ограничений на уровне таблиц: первичного, уникального, внешнего ключей, ограничений CHECK, NOT NULL.

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

RDB$CONSTRAINT_NAME

CHAR(63)

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

RDB$CONSTRAINT_TYPE

CHAR(11)

Содержит название типа ограничения: PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK, NOT NULL.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, к которой применяется это ограничение.

RDB$DEFERRABLE

CHAR(3)

В настоящий момент во всех случаях NO.

RDB$INITIALLY_DEFERRED

CHAR(3)

В настоящий момент во всех случаях NO.

RDB$INDEX_NAME

CHAR(63)

Имя индекса, который поддерживает это ограничение (содержит NULL,если ограничением является CHECK или NOT NULL).

RDB$RELATION_FIELDS

Характеристики столбцов таблиц и представлений.

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

RDB$FIELD_NAME

CHAR(63)

Имя столбца.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы (представления), где присутствует описываемыйстолбец.

RDB$FIELD_SOURCE

CHAR(63)

Содержит имя домена (определённого пользователем или созданногоавтоматически системой), на котором основывается данныйстолбец.

RDB$QUERY_NAME

CHAR(63)

В настоящей версии системы не используется.

RDB$BASE_FIELD

CHAR(63)

Только для представления. Имя столбца из базовой таблицы

RDB$EDIT_STRING

VARCHAR(127)

Не используется.

RDB$FIELD_POSITION

SMALLINT

Позиция столбца в таблице или представлении. Нумерация начинается с 0.

RDB$QUERY_HEADER

BLOB TEXT

Не используется.

RDB$UPDATE_FLAG

SMALLINT

Указывает, является ли столбец обычным столбцом (значение 1) иливычисляемым (значение 0).

RDB$FIELD_ID

SMALLINT

В настоящей версии системы в точности соответствует значению встолбце RDB$FIELD_POSITION.

RDB$VIEW_CONTEXT

SMALLINT

Для столбца представления это внутренний идентификатор базовойтаблицы, откуда приходит это поле.

RDB$DESCRIPTION

BLOB TEXT

Примечание к столбцу таблицы или представления.

RDB$DEFAULT_VALUE

BLOB BLR

Записанное в двоичном виде (BLR) значение по умолчанию — предложение DEFAULT, если оно присутствует при описании столбцатаблицы (представления).

RDB$SYSTEM_FLAG

SMALLINT

Указывает, определено пользователем (значение 0) или системой(значение 1 или выше).

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый вRDB$SECURITY_CLASSES для применения ограничений управления доступомдля всех пользователей этого столбца.

RDB$COMPLEX_NAME

CHAR(63)

Не используется.

RDB$NULL_FLAG

SMALLINT

Указывает, допускает ли столбец значения NULL (значение NULL) илине допускает (значение 1).

RDB$DEFAULT_SOURCE

BLOB TEXT

Исходный текст предложения DEFAULT, если присутствует.

RDB$COLLATION_ID

SMALLINT

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

RDB$GENERATOR_NAME

CHAR(63)

Имя внутреннего генератора для реализации identity столбца.

RDB$IDENTITY_TYPE

SMALLINT

Для IDENTITY столбцов определённых

GENERATED BY DEFAULT хранит значение 0,
GENERATED ALWAYS хранит значение 1.

Для не IDENTITY столбцов хранит NULL.

RDB$RELATIONS

Хранит некоторые характеристики таблиц и представлений.

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

RDB$VIEW_BLR

BLOB BLR

Для представления содержит на языке BLR спецификации запроса. Длятаблицы в поле содержится NULL.

RDB$VIEW_SOURCE

BLOB TEXT

Для представления содержит оригинальный исходный текст запроса наязыке SQL (включая пользовательские комментарии). Для таблицы в полесодержится NULL.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к таблице (представлению).

RDB$RELATION_ID

SMALLINT

Внутренний идентификатор таблицы (представления).

RDB$SYSTEM_FLAG

SMALLINT

Указывает, создана ли таблица (представление) пользователем(значение 0) или системой (значение 1 или выше).

RDB$DBKEY_LENGTH

SMALLINT

Общая длина ключа. Для таблицы это 8 байтов. Для представленияэто 8, умноженное на количество таблиц, на которые ссылаетсяпредставление.

RDB$FORMAT

SMALLINT

Внутреннее использование.

RDB$FIELD_ID

SMALLINT

Количество столбцов в таблице (представлении).

RDB$RELATION_NAME

CHAR(63)

Имя таблицы или представления.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблицеRDB$SECURITY_CLASSES для применения ограничений управления доступомдля всех пользователей этой таблицы (представления).

RDB$EXTERNAL_FILE

VARCHAR(255)

Полный путь к внешнему файлу данных, если таблица описана спредложением EXTERNAL FILE.

RDB$RUNTIME

BLOB

Описание метаданных таблицы. Внутреннее использование дляоптимизации.

RDB$EXTERNAL_DESCRIPTION

BLOB

Произвольное примечание к внешнему файлу таблицы.

RDB$OWNER_NAME

CHAR(31)

Имя пользователя — владельца (создателя) таблицы илипредставления.

RDB$DEFAULT_CLASS

CHAR(31)

Класс безопасности по умолчанию. Применяется, когда новый столбецдобавляется в таблицу.

RDB$FLAGS

SMALLINT

Внутренние флаги.

RDB$RELATION_TYPE

SMALLINT

Тип описываемого объекта:

  • 0 – постоянная таблица созданная пользователем или системная таблица;

  • 1 – представление;

  • 2 – внешняя таблица;

  • 3 – виртуальная таблица (таблицы мониторинга MON$, псевдотаблицы безопасности SEC$);

  • 4 – GTT уровня соединения (PRESERVE ROWS);

  • 5 – GTT уровня транзакции (DELETE ROWS).

RDB$SQL_SECURITY

BOOLEAN

С какими правами вычисляются вычисляемые столбцы:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE или NULL — с правами вызывающего пользователя (SQL SECURITY INVOKER).

RDB$ROLES

Определение ролей.

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

RDB$ROLE_NAME

CHAR(63)

Имя роли.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя-владельца роли.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к роли.

RDB$SYSTEM_FLAG

SMALLINT

Системный флаг.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблицеRDB$SECURITY_CLASSES для применения ограничений управления доступомдля всех пользователей этой роли.

RDB$SYSTEM_PRIVILEGES

BINARY(8)

Битовый набор с системными привилегиями, предоставленными роли, со следующими битами:

0 - не используется
1 - USER_MANAGEMENT
2 - READ_RAW_PAGES
3 - CREATE_USER_TYPES
4 - USE_NBACKUP_UTILITY
5 - CHANGE_SHUTDOWN_MODE
6 - TRACE_ANY_ATTACHMENT
7 - MONITOR_ANY_ATTACHMENT
8 - ACCESS_SHUTDOWN_DATABASE
9 - CREATE_DATABASE
10 - DROP_DATABASE
11 - USE_GBAK_UTILITY
12 - USE_GSTAT_UTILITY
13 - USE_GFIX_UTILITY
14 - IGNORE_DB_TRIGGERS
15 - CHANGE_HEADER_SETTINGS
16 - SELECT_ANY_OBJECT_IN_DATABASE
17 - ACCESS_ANY_OBJECT_IN_DATABASE
18 - MODIFY_ANY_OBJECT_IN_DATABASE
19 - CHANGE_MAPPING_RULES
20 - USE_GRANTED_BY_CLAUSE
21 - GRANT_REVOKE_ON_ANY_OBJECT
22 - GRANT_REVOKE_ANY_DDL_RIGHT
23 - CREATE_PRIVILEGED_ROLES
24 - GET_DBCRYPT_INFO
25 - MODIFY_EXT_CONN_POOL
26 - REPLICATE_INTO_DATABASE

RDB$SECURITY_CLASSES

Списки управления доступом.

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

RDB$SECURITY_CLASS

CHAR(63)

Имя класса безопасности.

RDB$ACL

BLOB ACL

Список управления доступом, связанный с классом безопасности.Перечисляет пользователей и их полномочия.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к классу безопасности.

RDB$TIME_ZONES

Виртуальная таблица со списком часовых поясов поддерживаемых сервером.

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

RDB$TIME_ZONE_ID

INTEGER

Идентификатор часового пояса.

RDB$TIME_ZONE_NAME

CHAR(63)

Наименование часового пояса

RDB$TRANSACTIONS

RDB$TRANSACTIONS хранит состояние распределённых и других транзакций, которые подготовлены для двухфазного подтверждения с явно подготовленным сообщением.

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

RDB$TRANSACTION_ID

INTEGER

Уникальный идентификатор отслеживаемой транзакции.

RDB$TRANSACTION_STATE

SMALLINT

Состояние транзакции:

0 — зависшая;
1 — подтверждённая;
2 — отменённая.

RDB$TIMESTAMP

TIMESTAMP

Не используется.

RDB$TRANSACTION_DESCRIPTION

BLOB

Описывает подготовленную транзакцию и может быть поступающеепользовательское сообщение isc_prepare_transaction2 даже если это нераспределённая транзакция. Может быть использовано в случае потерисоединения, которое не может быть восстановлено.

RDB$TRIGGER_MESSAGES

Сообщения триггеров.

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

RDB$TRIGGER_NAME

CHAR(63)

Имя триггера, с которым связано данное сообщение.

RDB$MESSAGE_NUMBER

SMALLINT

Номер сообщения в пределах одного триггера (от 1 до 32767).

RDB$MESSAGE

VARCHAR(1023)

Текст сообщения триггера.

RDB$TRIGGERS

Описания триггеров.

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

RDB$TRIGGER_NAME

CHAR(63)

Имя триггера.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы или представления, для которого используется триггер.Если триггер применяется не к событию таблицы, а к событию базыданных, то в этом поле находится NULL.

RDB$TRIGGER_SEQUENCE

SMALLINT

Последовательность (позиция) триггера. Ноль обычно означает, чтопоследовательность не задана.

RDB$TRIGGER_TYPE

BIGINT

Событие, на которое вызывается триггер:

1 — BEFORE INESRT;
2 — AFTER INSERT;
3 — BEFORE UPDATE;
4 — AFTER UPDATE;
5 — BEFORE DELETE;
6 — AFTER DELETE;
17 — BEFORE INSERT OR UPDATE;
18 — AFTER INSERT OR UPDATE;
25 — BEFORE INSERT OR DELETE;
26 — AFTER INSERT OR DELETE;
27 — BEFORE UPDATE OR DELETE;
28 — AFTER UPDATE OR DELETE;
113 — BEFORE INSERT OR UPDATE OR DELETE;
114 — AFTER INSERT OR UPDATE OR DELETE;
8192 — ON CONNECT;
8193 — ON DISCONNECT;
8194 — ON TRANSACTION START;
8195 — ON TRANSACTION COMMIT;
8196 — ON TRANSACTION ROLLBACK.

Описание событий DDL триггеров смотри ниже.

RDB$TRIGGER_SOURCE

BLOB TEXT

Хранит исходный код триггера в PSQL.

RDB$TRIGGER_BLR

BLOB BLR

Хранит триггер в двоичном коде BLR.

RDB$DESCRIPTION

BLOB TEXT

Текст примечания триггера.

RDB$TRIGGER_INACTIVE

SMALLINT

Указывает, является ли триггер в настоящее время неактивным (1)или активным (0).

RDB$SYSTEM_FLAG

SMALLINT

Признак — триггер определён пользователем (0) или системой (1 или выше).

RDB$FLAGS

SMALLINT

Внутреннее использование.

RDB$VALID_BLR

SMALLINT

Указывает, остаётся ли текст триггера корректным после последнегоизменения триггера при помощи оператора ALTER TRIGGER.

RDB$DEBUG_INFO

BLOB

Содержит отладочную информацию о переменных, используемых втриггере.

RDB$ENGINE_NAME

CHAR(63)

Имя движка для использования внешних триггеров. ОбычноUDR.

RDB$ENTRYPOINT

CHAR(255)

Имя точки входа в библиотеке, где находится этот триггер.

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется триггер:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER);
NULL — привилегии выполнения наследуется от таблицы.

Для DDL триггеров тип триггера (RDB$TRIGGER_TYPE) получается путём побитового ИЛИ над фазой события (0 - BEFORE, 1 - AFTER) и всех перечисленных типов событий:

  • CREATE TABLE — 0x0000000000004002;

  • ALTER TABLE — 0x0000000000004004;

  • DROP TABLE — 0x0000000000004008;

  • CREATE PROCEDURE — 0x0000000000004010;

  • ALTER PROCEDURE — 0x0000000000004020;

  • DROP PROCEDURE — 0x0000000000004040;

  • CREATE FUNCTION — 0x0000000000004080;

  • ALTER FUNCTION — 0x0000000000004100;

  • DROP FUNCTION — 0x0000000000004200;

  • CREATE TRIGGER — 0x0000000000004400;

  • ALTER TRIGGER — 0x0000000000004800;

  • DROP TRIGGER — 0x0000000000005000;

  • CREATE EXCEPTION — 0x0000000000014000;

  • ALTER EXCEPTION — 0x0000000000024000;

  • DROP EXCEPTION — 0x0000000000044000;

  • CREATE VIEW — 0x0000000000084000;

  • ALTER VIEW — 0x0000000000104000;

  • DROP VIEW — 0x0000000000204000;

  • CREATE DOMAIN — 0x0000000000404000;

  • ALTER DOMAIN — 0x0000000000804000;

  • DROP DOMAIN — 0x0000000001004000;

  • CREATE ROLE — 0x0000000002004000;

  • ALTER ROLE — 0x0000000004004000;

  • DROP ROLE — 0x0000000008004000;

  • CREATE INDEX — 0x0000000010004000;

  • ALTER INDEX — 0x0000000020004000;

  • DROP INDEX — 0x0000000040004000;

  • CREATE SEQUENCE — 0x0000000080004000;

  • ALTER SEQUENCE — 0x0000000100004000;

  • DROP SEQUENCE — 0x0000000200004000;

  • CREATE USER — 0x0000000400004000;

  • ALTER USER — 0x0000000800004000;

  • DROP USER — 0x0000001000004000;

  • CREATE COLLATION — 0x0000002000004000;

  • DROP COLLATION — 0x0000004000004000;

  • ALTER CHARACTER SET — 0x0000008000004000;

  • CREATE PACKAGE — 0x0000010000004000;

  • ALTER PACKAGE — 0x0000020000004000;

  • DROP PACKAGE — 0x0000040000004000;

  • CREATE PACKAGE BODY — 0x0000080000004000;

  • DROP PACKAGE BODY — 0x0000100000004000;

  • CREATE MAPPING — 0x0000200000004000;

  • ALTER MAPPING — 0x0000400000004000;

  • DROP MAPPING — 0x0000800000004000;

  • ANY DDL STATEMENT — 0x7FFFFFFFFFFFDFFE.

Например, триггер

BEFORE CREATE PROCEDURE OR CREATE FUNCTION будет иметь тип 0x0000000000004090,
AFTER CREATE PROCEDURE OR CREATE FUNCTION — 0x0000000000004091,
BEFORE DROP FUNCTION OR DROP EXCEPTION — 0x00000000000044200,
AFTER DROP FUNCTION OR DROP EXCEPTION — 0x00000000000044201,
BEFORE DROP TRIGGER OR DROP DOMAIN — 0x00000000001005000,
AFTER DROP TRIGGER OR DROP DOMAIN — 0x00000000001005001.

RDB$TYPES

Описание перечислимых типов данных.

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

RDB$FIELD_NAME

CHAR(63)

Имя перечисляемого типа. Совпадает с именем столбца, для которогоопределён данный перечислимый тип.

RDB$TYPE

SMALLINT

Задаёт идентификатор для типа.Последовательность чисел является уникальной для каждого отдельного перечислимого типа:

0 — таблица;
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — проверка;
5 — процедура.

RDB$TYPE_NAME

CHAR(63)

Текстовое представление для перечислимого типа.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к перечислимому типу.

RDB$SYSTEM_FLAG

SMALLINT

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

RDB$CHECK_CONSTRAINTS

Описывает соответствие имён триггеров именам ограничений, связанных с характеристиками NOT NULL, ограничениями CHECK и предложениями ON UPDATE, ON DELETE в ограничениях внешнего ключа.

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

RDB$CONSTRAINT_NAME

CHAR(63)

Имя ограничения. Задаётся пользователем или автоматически генерируется системой.

RDB$TRIGGER_NAME

CHAR(63)

Для ограничения CHECK — это имя триггера, который поддерживаетданное ограничение. Для ограничения NOT NULL — это имя столбца, ккоторому применяется ограничение. Для ограничения внешнего ключа –это имя триггера, который поддерживает предложения ON UPDATE, ON DELETE.

RDB$USER_PRIVILEGES

Полномочия пользователей системы.

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

RDB$USER

CHAR(63)

Пользователь, роль или объект которому предоставляется данное полномочие.Если в качестве грантополучателя используется системная привилегия, то вместо имени системной привилегии в данное поле попадает значение перечисляемого типа RDB$SYSTEM_PRIVILEGES:

1 – USER_MANAGEMENT;
2 – READ_RAW_PAGES;
3 – CREATE_USER_TYPES;
4 – USE_NBACKUP_UTILITY;
5 – CHANGE_SHUTDOWN_MODE;
6 – TRACE_ANY_ATTACHMENT;
7 – MONITOR_ANY_ATTACHMENT;
8 – ACCESS_SHUTDOWN_DATABASE;
9 – CREATE_DATABASE;
10 – DROP_DATABASE;
11 – USE_GBAK_UTILITY;
12 – USE_GSTAT_UTILITY;
13 – USE_GFIX_UTILITY;
14 – IGNORE_DB_TRIGGERS;
15 – CHANGE_HEADER_SETTINGS;
16 – SELECT_ANY_OBJECT_IN_DATABASE;
17 – ACCESS_ANY_OBJECT_IN_DATABASE;
18 – MODIFY_ANY_OBJECT_IN_DATABASE;
19 – CHANGE_MAPPING_RULES;
20 – USE_GRANTED_BY_CLAUSE;
21 – GRANT_REVOKE_ON_ANY_OBJECT;
22 – GRANT_REVOKE_ANY_DDL_RIGHT;
23 – CREATE_PRIVILEGED_ROLES.

RDB$GRANTOR

CHAR(63)

Имя пользователя, предоставляющего полномочие.

RDB$PRIVILEGE

CHAR(6)

Привилегия, предоставляемая в полномочии:

A – all (все привилегии);
S – select (выборка данных);
I – insert (добавление данных);
U – update (изменение данных);
D – delete (удаление строк);
R – reference (внешний ключ);
X – execute (выполнение);
G – usage (использование);
M – membership (членство).

RDB$GRANT_OPTION

SMALLINT

Содержит ли полномочие авторизацию WITH GRANT OPTION:

0 – не содержит;
1 – содержит.

RDB$RELATION_NAME

CHAR(63)

Имя объекта (таблица, роль, процедура) на который предоставляетсяполномочие.

RDB$FIELD_NAME

CHAR(63)

Имя столбца, к которому применяется привилегия на уровне столбца (только привилегии UPDATE и REFERENCES).

Если предоставляется членство в роли, то в данном столбце содержится NULL если роль предоставляется обычным образом, и D если роль предоставляется с использованием ключевого слова DEFAULT.

RDB$USER_TYPE

SMALLINT

Идентифицирует тип пользователя (или объекта), которому предоставляется привилегия:

1 – представление;
2 – триггер;
5 – процедура;
8 – пользователь;
13 – роль;
15 – функция;
18 – пакет;
20 – системная привилегия.

RDB$OBJECT_TYPE

SMALLINT

Идентифицирует тип объекта, на который предоставляется привилегия:

0 – таблица;
1 – представление;
2 – триггер;
5 – процедура;
7 – исключение;
8 – пользователь;
9 – домен;
11 – набор символов;
13 – роль;
14 – генератор (последовательность);
15 – функция;
16 – BLOB фильтр;
17 – сортировка;
18 – пакет.

RDB$VIEW_RELATIONS

Описывает представления.

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

RDB$VIEW_NAME

CHAR(63)

Имя представления.

RDB$RELATION_NAME

CHAR(63)

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

RDB$VIEW_CONTEXT

SMALLINT

Псевдоним (контекст), используемый для ссылки на столбецпредставления. Имеет то же значение, что и псевдоним, используемый всамом тексте представления на языке BLR в операторе запроса этогопредставления.

RDB$CONTEXT_NAME

CHAR(255)

Текстовый вариант псевдонима, указанного в столбцеRDB$VIEW_CONTEXT.

RDB$CONTEXT_TYPE

SMALLINT

Тип контекста:

0 – таблица;
1 – представление;
2 – хранимая процедура.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета для упакованной хранимой процедуры.

RDB$COLLATIONS

Порядки сортировки для наборов символов.

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

RDB$COLLATION_NAME

CHAR(63)

Имя порядка сортировки.

RDB$COLLATION_ID

SMALLINT

Идентификатор порядка сортировки. Вместе с идентификатором наборасимволов является уникальным идентификатором порядкасортировки.

RDB$CHARACTER_SET_ID

SMALLINT

Идентификатор набора символов. Вместе с идентификатором порядкасортировки является уникальным идентификатором.

RDB$COLLATION_ATTRIBUTES

SMALLINT

Атрибуты сортировки. Представляет собой битовую маску,

где 1-й бит показывает учитывать ли конечные пробелы при сравнении(0 — NO PAD; 1 — PAD SPACE);
2-й бит показывает является ли сравнениечувствительным к регистру символов (0 — CASE SENSITIVE, 1 — CASE INSENSITIVE);
3-й бит показывает будет ли сравнение чувствительным к акцентам (0 — ACCENT SENSITIVE, 1 — ACCENT SENSITIVE).

Таким образом, значение 5 означает, что сравнение не является чувствительным к конечным пробелам и к акцентированным буквам.

RDB$SYSTEM_FLAG

SMALLINT

Признак: определён пользователем — значение 0; определён всистеме — значение 1.

RDB$DESCRIPTION

BLOB TEXT

Произвольное текстовое описание порядка сортировки.

RDB$FUNCTION_NAME

CHAR(63)

В настоящий момент не используется.

RDB$BASE_COLLATION_NAME

CHAR(63)

Имя базового порядка сортировки для данного порядка сортировки.

RDB$SPECIFIC_ATTRIBUTES

BLOB TEXT

Описание особых атрибутов.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблицеRDB$SECURITY_CLASSES для применения ограничений управления доступомдля всех пользователей этой сортировки.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) сортировки.

RDB$CONFIG

Виртуальная таблица, отображающая актуальные параметры конфигурации, заданные в firebird.conf, databases.conf или через передаваемые через DPB.

Таблица RDB$CONFIG при необходимости заполняется из структур в памяти, а экземпляр хранится на уровне запроса SQL.По соображениям безопасности доступ разрешен только SYSDBA и владельцу базы данных.Непривилегированный пользователь видит пустое содержимое, ошибка не возникает.

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

RDB$CONFIG_ID

INTEGER

Уникальный идентификатор записи. Не имеет значения.

RDB$CONFIG_NAME

VARCHAR(63)

Наименование параметра, например “DefaultDbCachePages”, “TempCacheLimit” и т. д.

RDB$CONFIG_VALUE

VARCHAR(255)

Фактическое значение настройки, может задаваться в конфигурации ипри необходимости браться из ядра Firebird (в случае неверногозначения).

RDB$CONFIG_DEFAULT

VARCHAR(255)

Значение настройки по умолчанию, фиксированное в кодеFirebird.

RDB$CONFIG_IS_SET

BOOLEAN

TRUE, если значение установлено пользователем, FALSE в противномслучае.

RDB$CONFIG_SOURCE

VARCHAR(255)

Имя конфигурационного файла, в котором был задан параметр,относительно корневой папки firebird, например: “firebird.conf”, “databases.conf” илиспециальное значение “DPB”, если параметр былустановлен в DPB, если значение параметра не было задано, то этополе содержит NULL.

RDB$DATABASE

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

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

RDB$DESCRIPTION

BLOB TEXT

Текст примечания для базы данных.

RDB$RELATION_ID

SMALLINT

Количество таблиц и представлений в базе данных.

RDB$SECURITY_CLASS

CHAR(63)

Класс безопасности, определённый в RDB$SECURITY_CLASSES, дляобращения к общим для базы данных ограничениям доступа.

RDB$CHARACTER_SET_NAME

CHAR(63)

Имя набора символов по умолчанию для базы данных, установленногов предложении DEFAULT CHARACTER SET при создании базы данных. NULL — набор символов NONE.

RDB$LINGER

INTEGER

Количество секунд "задержки" (установленной оператором alter database set linger)до закрытия последнего соединения базы данных (в SuperServer).Если задержка не установлена, то содержит NULL.

RDB$SQL_SECURITY

BOOLEAN

Режим SQL SECURITY по умолчанию (DEFINER или INVOKER) для вновь создаваемым объектам:

NULL — режим по умолчанию (INVOKER);
FALSE — INVOKER. Вновь создаваемые объекты выполняются с правами вызывающего пользователя;
TRUE — DEFINER. Вновь создаваемые объекты выполняются с правами определяющего пользователя.

RDB$DB_CREATORS

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

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

RDB$USER

CHAR(63)

Имя пользователя или роли, которому даны полномочия на созданиебазы данных.

RDB$USER_TYPE

SMALLINT

Тип пользователя:

8 — пользователь;
13 — роль.

RDB$DEPENDENCIES

Сведения о зависимостях между объектами базы данных.

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

RDB$DEPENDENT_NAME

CHAR(63)

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

RDB$DEPENDED_ON_NAME

CHAR(63)

Объект, зависящий от описываемого объекта — таблица, на которуюссылается представление, процедура, триггер, ограничение CHECK иливычисляемый столбец.

RDB$FIELD_NAME

CHAR(63)

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

RDB$DEPENDENT_TYPE

SMALLINT

Идентифицирует тип объекта, для которого описывается зависимость:

0 — таблица;
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — ограничение CHECK;
5 — процедура;
6 — выражение для индекса;
9 — столбец;
15 — хранимая функция;
18 — заголовок пакета;
19 — тело пакета.

RDB$DEPENDED_ON_TYPE

SMALLINT

Идентифицирует тип зависимого объекта:

0 — таблица (или её столбец);
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — ограничение CHECK;
5 — процедура;
6 — выражение для индекса;
7 — исключение;
8 — пользователь;
9 — столбец;
10 — индекс;
14 — генератор (последовательность);
15 — UDF или хранимая функция;
17 — сортировка;
18 — заголовок пакета;
19 — тело пакета.

RDB$PACKAGE_NAME

CHAR(63)

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