FirebirdSQL logo

Примеры ALTER USER

Example 1. Изменение пользователя и выдача ему привилегии управления пользователями.
ALTER USER bobby PASSWORD '67-UiT_G8'
GRANT ADMIN ROLE;
Example 2. Изменение пароля пользователя, созданного с помощью плагина управления пользователями Legacy_UserManager.
ALTER USER godzilla PASSWORD 'robot12'
USING PLUGIN Legacy_UserManager;
Example 3. Изменение дополнительных атрибутов своей учётной записи.
ALTER CURRENT USER
FIRSTNAME 'No_Jack'
LASTNAME 'Kennedy';
Example 4. Отключение учётной записи пользователя.
ALTER USER dan INACTIVE;
Example 5. Отбор привилегии управления пользователями у пользователя.
ALTER USER dumbbell
REVOKE ADMIN ROLE;
Example 6. Изменение пользовательских атрибутов своей учётной записи.
ALTER CURRENT USER
TAGS (BIRTHYEAR = '1971', DROP CITY);

Атрибуту BIRTHDAY будет установлено новое значение, а атрибут CITY будет удалён.

CREATE OR ALTER USER

Назначение

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

Доступно в

DSQL

Синтаксис
ALTER USER _username_
  [SET] [<user_option> [<user_option> ...]]
  [USING PLUGIN _pluginname_]
  [{GRANT | REVOKE} ADMIN ROLE]
  [TAGS ( <tag> [, <tag>  ...] )]

<user_option> ::=
    PASSWORD '_password_'
  | FIRSTNAME '_firstname_'
  | MIDDLENAME '_middlename_'
  | LASTNAME '_lastname_'
  | {ACTIVE | INACTIVE}

<tag> ::=
    _tagname_ = '_string_value_'
  | DROP _tagname_

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

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

docnext count = 7

Примеры CREATE OR ALTER USER

Example 1. Создание или изменение пользователя.
CREATE OR ALTER USER john
PASSWORD 'fYe_3Ksw'
FIRSTNAME 'John'
LASTNAME 'Doe'
INACTIVE;

DROP USER

Назначение

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

Доступно в

DSQL

Синтаксис
DROP USER username
  [USING PLUGIN pluginname]
Table 1. Параметры оператора DROP USER
Параметр Описание

username

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

pluginname

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

Оператор DROP USER удаляет учётную запись пользователя Firebird.

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

Important

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

Кто может удалить учётную запись пользователя?

  • SYSDBA и другие пользователи являющиеся администраторами в базе данных безопасности (с ролью RDB$ADMIN);

  • Пользователи вошедшие с ролью или получившие её привилегии (роль назначена по умолчанию), которой назначена системная привилегия USER_MANAGEMENT.

Примеры DROP USER

Example 1. Удаление пользователя.
DROP USER bobby;
Example 2. Удаление пользователя, созданного с помощью плагина управления пользователями Legacy_UserManager.
DROP USER Godzilla USING PLUGIN Legacy_UserManager;

RECREATE USER

Назначение

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

Доступно в

DSQL

Синтаксис
RECREATE 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'

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

Оператор RECREATE USER создаёт нового или пересоздаёт существующего пользователя.Если пользователь с таким именем уже существует, то оператор RECREATE TABLE удалить его и создаст нового.Существующие привилегии при этом будут сохранены.

Примеры RECREATE USER

Example 1. Создание или пересоздание пользователя.
RECREATE USER john PASSWORD 'fYe_3Ksw'
FIRSTNAME 'John'
LASTNAME 'Doe'
INACTIVE;

Получение списка пользователей

Для получения списка пользователей и их атрибутов вы можете воспользоваться виртуальными таблицами SEC$USERS и SEC$USER_ATTRIBUTES.

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
Подробное описание виртуальных таблиц безопасности смотри в:

SEC$USERS, SEC$USER_ATTRIBUTES.