Ansible 从MySQL数据库添加或删除用户
mysql_user - 从MySQL数据库添加或删除用户。
概要
- 从MySQL数据库添加或删除用户。
要求(在执行模块的主机上)
- MySQLdb的
选项
| 参数 | 需要 | 默认 | 选择 | 注释 |
|---|---|---|---|---|
| append_privs
(1.4 加入)
|
no | no |
|
将priv定义的权限附加到此用户的现有权限,而不是覆盖现有的权限。
|
| check_implicit_admin
(1.3 加入)
|
no | no |
|
检查mysql是否允许以root / nopassword身份登录,然后再尝试提供的凭据。
|
| CONFIG_FILE
(2.0 加入)
|
no | 〜/ .my.cnf |
指定要从中读取用户和密码的配置文件。
|
|
| connect_timeout
(2.1 加入)
|
no | 30 |
连接到MySQL服务器时的连接超时。
|
|
| encrypted(加密)
(2.0 加入)
|
no | no |
|
表示'密码'字段是一个`mysql_native_password`哈希值
|
| host
|
no | localhost |
the 'host' part of the MySQL username
|
|
| host_all
(2.1加入)
|
no | no |
|
覆盖host选项,使给定用户对所有主机名进行ansible应用更改。创建用户时不能使用此选项
|
| login_host
|
no | localhost |
运行数据库的主机。
|
|
| login_password
|
no |
用于验证的密码。
|
||
| login_port
|
no | 3306 |
MySQL服务器端口。如果使用login_port,则需要将login_host定义为其他本地主机。
|
|
| login_unix_socket
|
no |
到本地连接的Unix域套接字的路径。
|
||
| login_user
|
no |
用于验证的用户名。
|
||
| name
|
yes |
添加或删除的用户名称(角色)
|
||
| password
|
no |
设置用户密码。
|
||
| priv
|
no |
MySQL特权字符串格式为:
db.table:priv1,priv2。可以通过使用正斜杠分隔每个特权来指定多个权限:
db.table:priv/db.table:priv。该格式基于MySQL
GRANT语句。数据库和表名可以引用,MySQL风格。
如果使用列权限,则该
priv1,priv2部分必须与SHOW GRANT语句完全相同。如果不遵循,模块将始终报告更改。它包括通过permission(SELECT(col1,col2)而不是SELECT(col1SELECT(col2))分组列)。 |
||
| SQL_LOG_BIN
(2.1加入)
|
no | yes |
|
是否应该为连接启用或禁用二进制日志记录。
|
| ssl_ca
(2.0加入)
|
no |
证书颁发机构(CA)证书的路径。此选项(如果使用)必须指定与服务器使用的相同的证书。
|
||
| ssl_cert
(2.0加入)
|
no |
客户端公钥证书的路径。
|
||
| ssl_key
(2.0加入)
|
no |
客户端私钥的路径。
|
||
| state | no | present |
|
用户是否应该存在 当
absent时删除用户。 |
| update_password
(2.0加入)
|
no | always |
|
如果不同,always将更新密码。
on_create只会为新创建的用户设置密码。 |
例子
# Removes anonymous user account for localhost
- mysql_user:
name: ''
host: localhost
state: absent # Removes all anonymous user accounts
- mysql_user:
name: ''
host_all: yes
state: absent # Create database user with name 'bob' and password '12345' with all database privileges
- mysql_user:
name: bob
password: 12345
priv: '*.*:ALL'
state: present # Create database user with name 'bob' and previously hashed mysql native password '*EE0D72C1085C46C5278932678FBE2C6A782821B4' with all database privileges
- mysql_user:
name: bob
password: '*EE0D72C1085C46C5278932678FBE2C6A782821B4'
encrypted: yes
priv: '*.*:ALL'
state: present # Creates database user 'bob' and password '12345' with all database privileges and 'WITH GRANT OPTION'
- mysql_user:
name: bob
password: 12345
priv: '*.*:ALL,GRANT'
state: present # Modify user Bob to require SSL connections. Note that REQUIRESSL is a special privilege that should only apply to *.* by itself.
- mysql_user:
name: bob
append_privs: true
priv: '*.*:REQUIRESSL'
state: present # 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 # Ensure no user named 'sally' exists at all
- mysql_user:
name: sally
host_all: yes
state: absent # Specify grants composed of more than one word
- mysql_user:
name: replication
password: 12345
priv: "*.*:REPLICATION CLIENT"
state: present # 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 # Example using login_unix_socket to connect to server
- mysql_user:
name: root
password: abc123
login_unix_socket: /var/run/mysqld/mysqld.sock # 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
注意
- MySQL服务器的默认login_user为“root”,无密码。为了将此用户作为幂等playboot的一部分,您必须至少创建两个任务:首先必须更改root用户的密码,而不提供任何login_user / login_password详细信息。第二个必须删除包含新的根凭证的〜/ .my.cnf文件。然后,通过从文件读取新的凭据,随后的游戏将成功。
- 目前,只支持mysql_native_password加密密码散列模块。
- 需要远程主机上的MySQLdb Python包。对于Ubuntu,这和apt-get install python-mysqldb一样简单。(请参阅apt。)对于CentOS / Fedora,这与yum安装MySQL-python一样简单。(见yum。)
- 无论
login_password和login_user你逝去的凭据是必需的。如果不存在,则模块将尝试从中读取凭据~/.my.cnf,最后回到使用MySQL默认登录的“root”,没有密码。
状态
该模块被标记为预览,这意味着它不能保证具有向后兼容的界面。
Ansible 从MySQL数据库添加或删除用户的更多相关文章
- mysql、添加和删除用户、添加权限
创建用户 mysql>insert into mysql.user(Host,User,Password) values("localhost","tes ...
- MySQL数据库添加一个字段
MySQL数据库添加一个字段 1.添加一个字段 alter table tableName add 列名 数据类型; 2.添加一个字段设置默认值 alter table tableName add ...
- 如何给mysql数据库添加一个用户
首先以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码. 创建一个MySQL用户 使用如下命令创建一个用户名和密码 ...
- linux mysql添加、删除用户、用户权限及mysql最大字段数量
1. 登录: mysql -u username -p 显示全部的数据库: show databases; 使用某一个数据库: use databasename; 显示一个数据库的全部表: show ...
- mysql 数据库 添加查询 修改 删除
cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据) 一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql 或者通过一键集成工具 打开mysql命令行 ...
- MySQL数据库(五)--用户管理、pymysql模块
一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...
- MySQL数据库(五)—— 用户管理、pymysql模块
用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...
- Mysql 数据库 创建与删除(基础2)
创建数据库 语法: 注意:创建数据库时可以指定编码(如: create database mydb123 default charset utf8; ) pyvip@Vip:~$ mysql -uxl ...
- MySQL数据库localhost的root用户登陆遭遇失败
问题:Access denied for user 'root'@'localhost' (using password: YES)打开MySQL目录下的my.ini文件(Linux的话是/etc/m ...
随机推荐
- iPhone激活策略知识讲解:官方解锁和黑解
iPhone激活策略知识讲解:官方解锁和黑解 [复制链接] LEECHY 该用户从未签到 1372 XY豆 438 帖子 440 贡献 苹果花 积分 2250 发消息 电梯直达 楼主 发 ...
- implicit和 explicit关键字
implicit 关键字用于声明隐式的用户定义类型转换运算符. 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换. class Digit { publi ...
- MySQL主从同步和半同步配置
mysql主从配置: 1,安装maraidb,使用国内yum镜像站下载:[root@localhost mysql]# cat /etc/yum.repos.d/MairaDB.repo # Mari ...
- CSS-DOM操作
所谓CSS-DOM操作就是读取和设置style对象的各种属性,style属性很强大,但是美中不足的是无法通过它来提取到通过外部CSS设置的样式信息,然而在家jQuery中,这些就可以通过css()方法 ...
- Linux下查看系统版本号信息的方法(转载)
原文出处 http://www.ha97.com/2987.html 1.cat /proc/version [root@localhost ~]# cat /proc/versionLinux v ...
- Python 编程规范梳理
缘由 由于项目团队中新加入了几名攻城狮, 大家之前的背景各不相同,写出的代码也是“风格迥异”.正所谓:“无规则不成方圆”,因此需要对编程进行必要的规范. 整体的思路是:依照PEP8 Python 编码 ...
- SVN - 简单使用手册
背景 由于项目需要,新增了两名程序员来一起支持一个分支的开发工作,因此需要在原来的SVN中制作分支并且为new commer 分配用户以及权限. 0. 准备 在Window系统上使用SVN,我们最好 ...
- 【Python编程:从入门到实践】chapter2 变量和简单数据类型
2.1 运行2.2 变量 message = "hello" print(message) 2.2.1 变量的命名和使用 2.2.2 使用变量是避免命名错误2.3 字符串 “Hel ...
- 外观设计模式 (Facade)
目的:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使 外观设计模式使用场合: 1. 在设计初期阶段,应该有意识的将不同的两个分层.层与层之间建立外观 ...
- corejava-内容梳理