Ansible 從MySQL數據庫添加或刪除用戶


mysql_user - 從MySQL數據庫添加或刪除用戶。

概要

  • 從MySQL數據庫添加或刪除用戶。

選項

參數 需要 默認 選擇 注釋
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(col1 SELECT(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”,沒有密碼。

狀態

該模塊被標記為預覽,這意味着它不能保證具有向后兼容的界面。

支持

這個模塊是沒有核心提交者監督的社區維護的。

有關這是什么意思的更多信息,請閱讀模塊支持

為了幫助開發模塊,如果您有這樣的傾向,請閱讀社區信息和貢獻測試可編程開發模塊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM