Ansible 从MySQL数据库添加或删除用户

mysql_user - 从MySQL数据库添加或删除用户。

概要

  • 从MySQL数据库添加或删除用户。

要求(在执行模块的主机上)

  • MySQLdb的

选项

参数 需要 默认 选择 注释
append_privs

(1.4 加入)

no no
  • yes
  • no

将priv定义的权限附加到此用户的现有权限,而不是覆盖现有的权限。
check_implicit_admin

(1.3 加入)

no no
  • yes
  • yes

检查mysql是否允许以root / nopassword身份登录,然后再尝试提供的凭据。
CONFIG_FILE

(2.0 加入)

no ?/ .my.cnf  
指定要从中读取用户和密码的配置文件。
connect_timeout

(2.1 加入)

no 30  
连接到MySQL服务器时的连接超时。
encrypted(加密)

(2.0 加入)

no no
  • yes
  • no

表示‘密码‘字段是一个`mysql_native_password`哈希值
host

no localhost  
the ‘host‘ part of the MySQL username
host_all

(2.1加入)

no no
  • yes
  • 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
  • yes
  • no

是否应该为连接启用或禁用二进制日志记录。
ssl_ca

(2.0加入)

no    
证书颁发机构(CA)证书的路径。此选项(如果使用)必须指定与服务器使用的相同的证书。
ssl_cert

(2.0加入)

no    
客户端公钥证书的路径。
ssl_key

(2.0加入)

no    
客户端私钥的路径。
state no present
  • present
  • absent

用户是否应该存在 当absent时删除用户。
update_password

(2.0加入)

no always
  • always
  • on_create

如果不同,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_passwordlogin_user你逝去的凭据是必需的。如果不存在,则模块将尝试从中读取凭据~/.my.cnf,最后回到使用MySQL默认登录的“root”,没有密码。

状态

该模块被标记为预览,这意味着它不能保证具有向后兼容的界面。

支持

这个模块是没有核心提交者监督的社区维护的。

有关这是什么意思的更多信息,请阅读模块支持

为了帮助开发模块,如果您有这样的倾向,请阅读社区信息和贡献测试可编程开发模块

时间: 2024-10-25 19:37:59

Ansible 从MySQL数据库添加或删除用户的相关文章

mysql、添加和删除用户、添加权限

创建用户 mysql>insert into mysql.user(Host,User,Password) values("localhost","test",password("1234")); 添加了一个username为test.password为1234用户.但该用户仅仅能在本地登陆,若想远程登陆的话可将localhost改为%表示不论什么一台电脑都能够登陆.或改为特定的ip表示仅仅能在特定的ip地址上登陆. 为用户加入权限 mys

批量添加或删除用户

========================================================================================== #!/bin/bash # if [ ! $# -eq 1 ];then echo './user.sh --add|--del' exit 1 fi case "$1" in --add) for i in {1..10} do if id user$i &>/dev/null ;then

sql server 还原数据库后,删除用户,提示数据库主体在该数据库中拥有架构,无法删除解决方法

将另一台服务器上的数据库备份文件,在现在用的这台服务器上还原之后,再创建相同的用户名,提示用户已存在 想将之前的用户先删除掉,却提示“数据库主体在该数据库中拥有架构,无法删除解决方法” 在网上找到方法,试了一下,还真管用. --执行如下SQL语句 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo; --然后手动删除就可以了 我看还原后的数据库中的db_owner架构所有者就是那个要删除的用户名,再看其他数据库中的db_owner架构的所有者就是db_o

如何给mysql数据库添加一个用户

首先以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码. 创建一个MySQL用户 使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户. mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; 一旦用户被创建后,包括加密的密码.权限和资源限制在内的所有帐号细节都会

linux mysql添加、删除用户、用户权限及mysql最大字段数量

1.  登录: mysql -u username -p 显示全部的数据库: show databases; 使用某一个数据库: use databasename; 显示一个数据库的全部表: show tables; 退出: quit; 删除数据库和数据表 mysql>drop database 数据库名; mysql>drop table 数据表名; 用户相关: 查看全部的用户: SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';

MySQL数据库(五)—— 用户管理、pymysql模块

用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_priv user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段 db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段 tables_priv #该表放行的权限.针对:某一张表,以及该表下的所有字段 columns_priv #该

Mysql数据库理论基础之十 ---- 用户和权限管理、管理员密码重置

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建.这样,表的大小就能超过单独文件的最大容量.表空间可包括原始磁盘分区,从而使得很大的表成为可能

MySQL数据库localhost的root用户登陆遭遇失败

问题:Access denied for user 'root'@'localhost' (using password: YES)打开MySQL目录下的my.ini文件(Linux的话是/etc/my.cnf),在文件的最后添加一行“skip-grant-tables”,保存并关闭文件.2.重启MySQL服务.3.在命令行中输入“mysql -uroot -p”(不输入密码),回车即可进入数据库.4.执行,“use mysql;”使用mysql数据库.5.执行,“update user set

mysql 数据库授权(给某个用户授权某个数据库)

先设置该用户只有show database权限 grant select,insert,update,delete on redmine1.* to [email protected]"%" identified by "jira"; 新增超级权限并允许远程访问: GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FL