Перейти к основному содержимому

CREATE USER

CREATE USER создает пользователя Selena. В Selena "user_identity" уникально идентифицирует пользователя. Начиная с версии 1.5.0, Selena поддерживает установку свойств пользователя при создании пользователя.

подсказка

Только пользователи с ролью user_admin имеют привилегию для выполнения этой операции.

Синтаксис

CREATE USER [IF NOT EXISTS] <user_identity> 
[auth_option]
[DEFAULT ROLE <role_name>[, <role_name>, ...]]
[PROPERTIES ("key"="value", ...)]

Параметры

  • user_identity состоит из двух частей: "user_name" и "host", в формате username@'userhost'. Для части "host" можно использовать % для нечеткого поиска. Если "host" не указан, по умолчанию используется "%", что означает, что пользователь может подключаться к Selena с любого хоста.

    Для соглашений по именованию пользователей см. Системные ограничения.

  • auth_option указывает метод аутентификации. В настоящее время поддерживаются три метода аутентификации: собственный пароль Selena, mysql_native_password и "authentication_ldap_simple". Собственный пароль Selena логически аналогичен mysql_native_password, но немного отличается синтаксисом. Одна идентификация пользователя может использовать только один метод аутентификации.

    auth_option: {
    IDENTIFIED BY 'auth_string'
    IDENTIFIED WITH mysql_native_password BY 'auth_string'
    IDENTIFIED WITH mysql_native_password AS 'auth_string'
    IDENTIFIED WITH authentication_ldap_simple AS 'auth_string'

    }
    Метод аутентификацииПароль для создания пользователяПароль для входа
    Собственный парольОткрытый текст или шифротекстОткрытый текст
    mysql_native_password BYОткрытый текстОткрытый текст
    mysql_native_password WITHШифротекстОткрытый текст
    authentication_ldap_simpleОткрытый текстОткрытый текст

Примечание: Selena шифрует пароли пользователей перед их сохранением.

  • DEFAULT ROLE <role_name>[, <role_name>, ...]: Если этот параметр указан, роли автоматически назначаются пользователю и активируются по умолчанию при входе пользователя в систему. Если не указан, этот пользователь не имеет никаких привилегий. Убедитесь, что все указанные роли уже существуют.

  • PROPERTIES устанавливает свойства пользователя, включая максимальное количество подключений пользователя (max_user_connections), catalog, базу данных или переменные сеанса на уровне пользователя. Переменные сеанса уровня пользователя вступают в силу при входе пользователя в систему. Эта функция поддерживается начиная с версии 1.5.0.

    -- Установить максимальное количество подключений пользователя.
    PROPERTIES ("max_user_connections" = "<Integer>")
    -- Установить catalog.
    PROPERTIES ("catalog" = "<catalog_name>")
    -- Установить базу данных.
    PROPERTIES ("catalog" = "<catalog_name>", "database" = "<database_name>")
    -- Установить переменные сеанса.
    PROPERTIES ("session.<variable_name>" = "<value>", ...)
    подсказка
    • PROPERTIES работает с пользователем, а не с идентификацией пользователя.
    • Глобальные переменные и переменные только для чтения нельзя установить для конкретного пользователя.
    • Переменные вступают в силу в следующем порядке: SET_VAR > Сеанс > Свойство пользователя > Глобальный.
    • Вы можете использовать SHOW PROPERTY для просмотра свойств конкретного пользователя.

Примеры

Пример 1: Создать пользователя с паролем в открытом тексте без указания хоста, что эквивалентно jack@'%'.

CREATE USER 'jack' IDENTIFIED BY '123456';

Пример 2: Создать пользователя с паролем в открытом тексте и разрешить пользователю входить с '172.10.1.10'.

CREATE USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password BY '123456';

Пример 3: Создать пользователя с зашифрованным паролем и разрешить пользователю входить с '172.10.1.10'.

CREATE USER jack@'172.10.1.10' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
CREATE USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password AS '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

Примечание: Вы можете получить зашифрованный пароль, используя функцию password().

Пример 4: Создать пользователя, которому разрешено входить с доменного имени 'example_domain'.

CREATE USER 'jack'@['example_domain'] IDENTIFIED BY '123456';

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

CREATE USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple;

Пример 6: Создать пользователя, который использует LDAP аутентификацию и указать отличительное имя (DN) пользователя в LDAP.

CREATE USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple AS 'uid=jack,ou=company,dc=example,dc=com';

Пример 7: Создать пользователя, которому разрешено входить из подсети '192.168' и установить db_admin и user_admin как роли по умолчанию для пользователя.

CREATE USER 'jack'@'192.168.%' DEFAULT ROLE db_admin, user_admin;

Пример 8: Создать пользователя и установить максимальное количество подключений пользователя равным 600.

CREATE USER 'jack'@'192.168.%' PROPERTIES ("max_user_connections" = "600");

Пример 9: Создать пользователя и установить catalog пользователя как hive_catalog.

CREATE USER 'jack'@'192.168.%' PROPERTIES ('catalog' = 'hive_catalog');

Пример 10: Создать пользователя и установить базу данных пользователя как test_db в Default Catalog.

CREATE USER 'jack'@'192.168.%' PROPERTIES ('catalog' = 'default_catalog', 'database' = 'test_db');

Пример 11: Создать пользователя и установить переменную сеанса query_timeout равной 600 для пользователя.

CREATE USER 'jack'@'192.168.%' PROPERTIES ('session.query_timeout' = '600');