mysql下用戶和密碼生成管理 應用上線,涉及到用戶名和密碼管理,隨著上線應用的增加,用戶名和密碼的管理設置成為一個問題。還要對用戶賦權,於是想著寫一個腳本來管理,看到同事寫的一個腳本,滿足需求。思路大致是字母替換為數字,賬號根據庫名設置。腳本如下:
#!/bin/sh passwd1=$1_sir dbuser=`echo $passwd1|awk '{print tolower($0)}'` dbpassword=`echo $passwd1| awk '{print tolower($0)}' |sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'|awk '{ toupper($0) gsub(/_/,"",$0) while($0~/a/) { gsub(/a/,"4",$0) } while($0~/e/) { gsub(/e/,"3",$0) } while($0~/i/) { gsub(/i/,"1",$0) } while($0~/o/) { gsub(/o/,"0",$0) } while($0~/v/) { gsub(/v/,"7",$0) } print tolower($0) }'` echo "grant select,update,delete,insert on $1.* to $dbuser@'%' identified by '$dbpassword';" echo "grant select on $1.* to reader@'%' identified by 'n0p4ssw0rd';"
使用方式 腳本後面跟db名字
[root@dbxxxxx]# ./password.sh userdb grant select,update,delete,insert on userdb.* to userdb_sir@'%' identified by 'r1sbdr3su'; grant select on userdb.* to reader@'%' identified by 'n0p4ssw0rd';
執行完產生上面的sql語句,一個寫賬號,一個讀賬號,然後在相應主機上執行命令。