Назначение
Создание отображения объекта безопасности.
Синтаксис
CREATE [GLOBAL] MAPPING name
USING {
PLUGIN plugin_name [IN database]
| ANY PLUGIN [IN database | SERVERWIDE]
| MAPPING [IN database]
| '*' [IN database] }
FROM { ANY type | type from_name }
TO { USER | ROLE } [to_name]
Table 1. Параметры оператора CREATE MAPPING
Параметр |
Описание |
name |
Имя отображения.Может содержать до 63 символов. |
plugin_name |
Имя плагина аутентификации. |
database |
Имя базы данных, в которой прошла аутентификация. |
type |
Тип объекта, который будет отображён. |
from_name |
Имя объекта, который будет отображён. |
to_name |
Имя объекта (пользователи или роли) на которое будет произведено отображение. |
Оператор CREATE MAPPING
создаёт отображение объектов безопасности (пользователей, групп, ролей) одного или нескольких плагинов аутентификации на внутренние объекты безопасности – CURRENT_USER
и CURRENT_ROLE
.Имя отображения должно быть уникальным среди имён отображений.
Если присутствует опция GLOBAL
, то отображение будет применено не только для текущей базы данных, но и для всех баз данных находящимся в том же кластере, в том числе и базы данных безопасности.
Important
|
Если существуют одноименные глобальные и локальные отображение, то вам следует знать, что это разные объекты.
|
Note
|
Глобальное отображение работает, если в качестве базы данных безопасности используется база данных Firebird 3 или более высокой версии.Если вы планируете использовать другую базу данных, например, для целей использования собственного поставщика, то вам необходимо создать таблицу в ней и назвать её RDB$MAP с той же структурой, что и RDB$MAP в базе данных Firebird 3 и дать доступ на запись только для SYSDBA .
|
Предложение USING
описывает источник отображения.Оно имеет весьма сложный набор опций:
-
явное указание имени плагина (опция PLUGIN plugin_name
) означает, что оно будет работать только с этим плагином;
-
оно может использовать любой доступный плагин (опция ANY PLUGIN
), даже если источник является продуктом предыдущего отображения;
-
оно может быть сделано так, чтобы работать только с обще серверными плагинами (опция SERVERWIDE
);
-
оно может быть сделано так, чтобы работать только с результатами предыдущего отображения (опция MAPPING
);
-
вы можете опустить использование любого из методов, используя звёздочку (*
) в качестве аргумента;
-
оно может содержать имя базы данных (опция IN
), из которой происходит отображение объекта FROM
.
Note
|
Этот аргумент не является допустимым для отображения с общесерверной аутентификацией.
|
Предложение FROM
описывает отображаемый объект.Оно принимает обязательный аргумент — тип объекта.
-
при отображении имён из плагинов, тип определяется плагином;
-
при отображении продукта предыдущего отображения, типом может быть только USER
и ROLE
;
-
если имя объекта будет указано явно, то оно будет учитываться при отображении;
-
при использовании ключевого слова ANY
будут отображены объекты с любыми именами данного типа.
Сочетание источник (предложение USING
) и объект отображения (предложение FROM
) должно быть уникальным, иначе будет сгенерирована ошибка.Это позволяется только если одно отображение является глобальным, а второе локальным.
В предложении TO
указывается пользователь или роль, на которого будет произведено отображение.to_name является не обязательным аргументом.Если он не указан, то в качестве имени объекта будет использовано оригинальное имя из отображаемого объекта.
Note
|
Локальное отображение перекрывает глобальное отображение с одинаковым сочетанием источника и объекта отображения.Это действует приблизительно так же как с настройками: настройки уровня базы данных (databases.conf) перекрывают глобальные настройки (firebird.conf).
|