FirebirdSQL logo

CREATE MAPPING

Назначение

Создание отображения объекта безопасности.

Доступно в

DSQL

Синтаксис
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).

Кто может создать отображение

  • SYSDBA;

  • Владелец базы данных (если отображение локальное);

  • Любой пользователь, вошедший с ролью RDB$ADMIN;

  • Пользователь root операционной системы Linux.

docnext count = 9

Примеры CREATE MAPPING

Example 1. Включение использования доверительной аутентификации Windows во всех базах данных, которые используют текущую базу данных безопасности.
CREATE GLOBAL MAPPING TRUSTED_AUTH
USING PLUGIN WIN_SSPI
FROM ANY USER
TO USER;
Example 2. Включение SYSDBA-подобного доступа для администраторов Windows в текущей базе данных.
CREATE MAPPING WIN_ADMINS
USING PLUGIN WIN_SSPI
FROM Predefined_Group
DOMAIN_ANY_RID_ADMINS
TO ROLE RDB$ADMIN;
Note

Группа DOMAIN_ANY_RID_ADMINS не существует в Windows, но такое имя будет добавлено плагином win_sspi для обеспечения точной обратной совместимости.

Example 3. Включение доступа определённому пользователю из другой базы данных к текущей базе данных под другим именем.
CREATE MAPPING FROM_RT
USING PLUGIN SRP IN "rt"
FROM USER U1 TO USER U2;

Пользователь U1 прошедший аутентификацию в базе данных rt будет отображён на пользователя с именем U2.

Important

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

Example 4. Включение общесерверного SYSDBA (от основной базы данных безопасности) для доступа к текущей базе данных.

Предположим, что база данных использует базу данных безопасности не по умолчанию.

CREATE MAPPING DEF_SYSDBA
USING PLUGIN SRP IN "security.db"
FROM USER SYSDBA
TO USER;
Example 5. Создание ограничения прав для пользователей, которые подключаются унаследованным плагином аутентификации.
CREATE MAPPING LEGACY_2_GUEST
USING PLUGIN legacy_auth
FROM ANY USER
TO USER GUEST;

ALTER MAPPING

Назначение

Изменение отображения объекта безопасности.

Доступно в

DSQL.

Синтаксис
ALTER [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]

Описание параметров оператора смотри в [fblangref-security-mappingcreate].

Оператор ALTER MAPPING позволяет изменять любые опции существующего отображения.

Important

Одноименные глобальное и локальное отображение — это разные объекты.

Кто может изменить отображние

Выполнить ALTER MAPPING могут:
  • SYSDBA;

  • Владелец базы данных (если отображение локальное);

  • Любой пользователь, вошедший с ролью RDB$ADMIN;

  • Пользователь root операционной системы Linux.

Примеры ALTER MAPPING

Example 1. Изменение отображения.
ALTER MAPPING FROM_RT
USING PLUGIN SRP IN "rt"
FROM USER U1 TO USER U3;

CREATE OR ALTER MAPPING

Назначение

Создание или изменение отображения объекта безопасности.

Доступно в

DSQL

Синтаксис
CREATE OR ALTER [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]

Описание параметров оператора смотри в [fblangref-security-mappingcreate].

Оператор CREATE OR ALTER MAPPING создаёт новое или изменяет существующее отображение.Если отображение не существует, то оно будет создано с использованием оператора CREATE MAPPING.

Important

Одноименные глобальное и локальное отображение — это разные объекты.

Примеры CREATE OR ALTER MAPPING

Example 1. Создание нового или изменение существующего отображения.
CREATE OR ALTER MAPPING FROM_RT
USING PLUGIN SRP IN "rt"
FROM USER U1 TO USER U4;

DROP MAPPING

Назначение

Удаление отображения объекта безопасности.

Доступно в

DSQL

Синтаксис
DROP [GLOBAL] MAPPING name
Table 1. Параметры оператора DROP MAPPING
Параметр Описание

name

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

Оператор DROP MAPPING удаляет существующее отображение.Если указана опция GLOBAL, то будет удалено глобальное отображение.

Important

Одноименные глобальное и локальное отображение — это разные объекты.

Кто может удалить отображение

Выполнить DROP MAPPING могут:
  • SYSDBA;

  • Владелец базы данных (если отображение локальное);

  • Любой пользователь, вошедший с ролью RDB$ADMIN;

  • Пользователь root операционной системы Linux.

Примеры DROP MAPPING

Example 1. Удаление отображения.
DROP MAPPING FROM_RT;