mysql_user – Добавляет или удаляет пользователя из базы данных MySQL
Описание
- Добавляет или удаляет пользователя из базы данных MySQL.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- PyMySQL (Python 2.7 и Python 3.X), или
- MySQLdb (Python 2.x)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| append_privs логическое значение |
| Добавить привилегии, определённые параметром priv, к существующим для этого пользователя, вместо перезаписи существующих. |
| ca_cert путь добавлен в 2.0 | Путь к сертификату центра сертификации (CA). При использовании этого параметра необходимо указать тот же сертификат, что и используется сервером. алиасы: ssl_ca | |
| check_implicit_admin логическое значение |
| Проверить, разрешает ли MySQL вход как root/без пароля перед проверкой предоставленных учетных данных. |
| client_cert путь добавлен в 2.0 | Путь к сертификату открытого ключа клиента. алиасы: ssl_cert | |
| client_key путь добавлен в 2.0 | Путь к закрытому ключу клиента. алиасы: ssl_key | |
| config_file путь добавлен в 2.0 | Значение по умолчанию: "~/.my.cnf" | Указать конфигурационный файл, из которого должны быть прочитаны имя пользователя и пароль. |
| connect_timeout целое число добавлен в 2.1 | Значение по умолчанию: 30 | Таймаут соединения при подключении к серверу MySQL. |
| encrypted логическое значение добавлен в 2.0 |
| Указать, что поле 'password' содержит хеш `mysql_native_password`. |
| host строка | Значение по умолчанию: "localhost" | Часть имени пользователя MySQL. |
| host_all логическое значение добавлен в 2.1 |
| Переопределить параметр host, применяя изменения к всем именам хостов для данного пользователя. Этот параметр нельзя использовать при создании пользователей. |
| ... (остальные строки таблицы) ... | ... | ... |
Примечания
Примечание
- Сервер MySQL устанавливается с параметрами login_user по умолчанию 'root' и без пароля. Чтобы защитить этого пользователя в рамках идемпотентного плейбука, необходимо создать как минимум две задачи: первая должна изменить пароль пользователя root, не предоставляя информацию login_user/login_password. Вторая должна удалить файл ~/.my.cnf, содержащий новые учетные данные root. Последующие запуски плейбука будут успешны, считывая новые учетные данные из файла.
- В настоящее время поддерживается только модуль хеширования пароля
mysql_native_passwordencrypted. - Требуется пакет PyMySQL (Python 2.7 и Python 3.X) или MySQL-python (Python 2.X) на удалённом хосте. Пакет Python можно установить с помощью apt-get install python-pymysql (Ubuntu; см. apt) или yum install python2-PyMySQL (RHEL/CentOS/Fedora; см. yum). Также можно использовать dnf install python2-PyMySQL для более новых версий Fedora; см. dnf.
- И
login_passwordиlogin_userнеобходимы при передаче учетных данных. Если они отсутствуют, модуль попытается прочитать учетные данные из~/.my.cnf, и в конечном счете вернётся к использованию стандартного входа MySQL 'root' без пароля.
См. также
См. также
- mysql_info_module
- Официальная документация модуля mysql_info.
- MySQL Справочник по управлению доступом и учетными записями
- Полное описание документации MySQL по управлению доступом и учетными записями.
- MySQL Справочник по предоставляемым привилегиям
- Полное описание документации MySQL по предоставляемым привилегиям.
Примеры
- name: Removes anonymous user account for localhost
mysql_user:
name: ''
host: localhost
state: absent
- name: Removes all anonymous user accounts
mysql_user:
name: ''
host_all: yes
state: absent
- name: Create database user with name 'bob' and password '12345' with all database privileges
mysql_user:
name: bob
password: 12345
priv: '*.*:ALL'
state: present
- name: Create database user using hashed password with all database privileges
mysql_user:
name: bob
password: '*EE0D72C1085C46C5278932678FBE2C6A782821B4'
encrypted: yes
priv: '*.*:ALL'
state: present
- name: Create database user with password and all database privileges and 'WITH GRANT OPTION'
mysql_user:
name: bob
password: 12345
priv: '*.*:ALL,GRANT'
state: present
# Note that REQUIRESSL is a special privilege that should only apply to *.* by itself.
- name: Modify user to require SSL connections.
mysql_user:
name: bob
append_privs: yes
priv: '*.*:REQUIRESSL'
state: present
- name: Ensure no user named 'sally'@'localhost' exists, also passing in the auth credentials.
mysql_user:
login_user: root
login_password: 123456
name: sally
state: absent
- name: Ensure no user named 'sally' exists at all
mysql_user:
name: sally
host_all: yes
state: absent
- name: Specify grants composed of more than one word
mysql_user:
name: replication
password: 12345
priv: "*.*:REPLICATION CLIENT"
state: present
- name: Revoke all privileges for user 'bob' and password '12345'
mysql_user:
name: bob
password: 12345
priv: "*.*:USAGE"
state: present
# Example privileges string format
# mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL
- name: Example using login_unix_socket to connect to server
mysql_user:
name: root
password: abc123
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: Example of skipping binary logging while adding user 'bob'
mysql_user:
name: bob
password: 12345
priv: "*.*:USAGE"
state: present
sql_log_bin: no
# Example .my.cnf file for setting the root password
# [client]
# user=root
# password=n<_665{vS43y
Статус
- Данному модулю не гарантируется обратная совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Jonathan Mainguy (@Jmainguy)
- Benjamin Malynovytch (@bmalynovytch)
Подсказка
Если вы обнаружите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/mysql_user_module.html