FirebirdSQL logo

В данном разделе описываются операторы создания, модификации и удаления учётных записей пользователей Firebird средствами операторов SQL.Такая возможность предоставлена следующим пользователям:

  • SYSDBA;

  • Любому пользователю, имеющему права на роль RDB$ADMIN в базе данных пользователей и права на ту же роль для базы данных в активном подключении. Пользователь должен подключаться к базе данных с ролью RDB$ADMIN или получить её права, если роль назначена в качестве роли по умолчанию;

  • Любому пользователю с ролью, которой назначена системная привилегия USER_MANAGEMENT в базе данных безопасности. Пользователь должен подключаться к базе данных с этой ролью или получить её права, если роль назначена в качестве роли по умолчанию;

  • При включенном флаге AUTO ADMIN MAPPING в базе данных пользователей (security4.fdb или той, что установлена для вашей базы данных в файле databases.conf) — любой администратор операционной системы Windows (при условии использования сервером доверенной авторизации — trusted authentication) без указания роли. При этом не важно, включен или выключен флаг AUTO ADMIN MAPPING в самой базе данных.

Непривилегированные пользователи могут использовать только оператор ALTER USER для изменения собственной учётной записи.

CREATE USER

Назначение

Создание учётной записи пользователя Firebird.

Доступно в

DSQL

Синтаксис
CREATE USER username
  PASSWORD 'password'
  [<user_option> [<user_option> ...]]
  [TAGS ( <tag> [, <tag>  ...] )]

<user_option> ::=
    FIRSTNAME 'firstname'
  | MIDDLENAME 'middlename'
  | LASTNAME 'lastname'
  | {ACTIVE | INACTIVE}
  | USING PLUGIN pluginname
  | GRANT ADMIN ROLE

<tag> ::=
  tagname = 'string_value'
Table 1. Параметры оператора CREATE USER
Параметр Описание

username

Имя пользователя.Максимальная длина 63 символов.

[password

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

firstname

Вспомогательная информация: имя пользователя.Максимальная длина 32 символа.

middlename

Вспомогательная информация: "второе имя" (отчество, "имя отца") пользователя.Максимальная длина 32 символа.

lastname

Вспомогательная информация: фамилия пользователя.Максимальная длина 32 символа.

pluginname

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

tagname

Имя пользовательского атрибута.Максимальная длина 63 символа.Имя атрибута должно подчиняться правилам наименования SQL идентификаторов.

string_value

Значение пользовательского атрибута.Максимальная длина 255 символов.

Оператор CREATE USER создаёт учётную запись пользователя Firebird.Пользователь должен отсутствовать в текущей базе данных безопасности Firebird иначе будет выдано соответствующее сообщение об ошибке.

Important

Начиная с Firebird 3.0 имена пользователей подчиняются общему правилу наименования идентификаторов объектов метаданных.Таким образом, пользователь с именем "Alex" и с именем "ALEX" будут разными пользователями.

CREATE USER ALEX PASSWORD 'bz23ds';

-- этот пользователь такой же как и первый
CREATE USER Alex PASSWORD 'bz23ds';

-- этот пользователь такой же как и первый
CREATE USER "ALEX" PASSWORD 'bz23ds';

-- а это уже другой пользователь
CREATE USER "Alex" PASSWORD 'bz23ds';

Предложение PASSWORD задаёт пароль пользователя.Максимальная длина пароля зависит от того какой плагин управления пользователями задействован (параметр UserManager).Для плагина SRP эффективная длина пароля ограничена 20 байтами *. Плагин Legacy_UserManager максимальная длина пароля равна 8 байт.

Note
*Почему эффективная длина пароля ограничена 20 символами?

На длину пароля нет ограничения в 20 байт и он может быть использован.Хеши различных паролей, длина которых более 20 байт, тоже различны.Предел эффективности наступает из-за ограниченной длины хеша в SHA1 равном 20 байт или 160 бит.Рано или поздно найдётся более короткий пароль с тем же хешем с помощью атаки Brute Force.Именно поэтому часто говорят, что эффективная длина пароля для алгоритма SHA1 составляет 20 байт.

Необязательные предложения FIRSTNAME, MIDDLENAME и LASTNAME задают дополнительные атрибуты пользователя, такие как имя пользователя (имя человека), отчество и фамилия соответственно.

Если при создании учётной записи будет указан атрибут INACTIVE, то пользователь будет создан в “неактивном состоянии”, т.е.подключиться с его учётной записью будет невозможно.При указании атрибута ACTIVE пользователь будет создан в активном состоянии.По умолчанию пользователь создаётся активным.Данная возможность доступна только при использовании Srp в качестве менеджера пользователей.

Если указана опция GRANT ADMIN ROLE, то новая учётная запись пользователя создаётся с правами роли RDB$ADMIN в текущей базе данных безопасности.Это позволяет вновь созданному пользователю управлять учётными записями пользователей, но не даёт ему специальных полномочий в обычных базах данных.

Необязательное предложение USING PLUGIN позволяет явно указывать какой плагин управления пользователями будет использован.По умолчанию используется тот плагин, который был указан первым в списке параметра UserManager в файле конфигурации firebird.conf.Допустимыми являются только значения, перечисленные в параметре UserManager.

Important
Важно

Учтите что одноименные пользователи, созданные с помощью разных плагинов управления пользователями — это разные пользователи.Поэтому пользователя созданного с помощью одного плагина управления пользователями можно удалить или изменить, указав только тот же самый плагин.

Кроме того вы можете задать неограниченное количество пользовательских атрибутов с помощью необязательного предложения TAGS.Данная возможность доступна только при использовании Srp в качестве менеджера пользователей.