mysql導(dǎo)出用戶權(quán)限的方法:首先生成用戶權(quán)限的腳本;然后生成權(quán)限SQL腳本;最后在目標(biāo)服務(wù)器上執(zhí)行腳本,代碼為【mysql -uname -ppwd
mysql導(dǎo)出用戶權(quán)限的方法:
?在對MySQL數(shù)據(jù)庫進(jìn)行遷移的時(shí)候,有時(shí)候也需要遷移源數(shù)據(jù)庫內(nèi)的用戶與權(quán)限。對于這個(gè)遷移我們可以從mysql.user表來獲取用戶的相關(guān)權(quán)限來生成相應(yīng)的SQL語句,然后在目標(biāo)服務(wù)器上來執(zhí)行生成的SQL語句即可。本文提供了生成提取用戶權(quán)限的腳本并給出演示。
1、生成用戶權(quán)限的腳本
[root@HKBO?~]#?more?exp_grant.sh #!/bin/bash #Function?export?user?privileges ? pwd=123456 expgrants() { ??mysql?-B?-u'root'?-p${pwd}?-N?$@?-e?"SELECT?CONCAT( ????'SHOW?GRANTS?FOR?''',?user,?'''@''',?host,?''';' ????)?AS?query?FROM?mysql.user"?|? ??mysql?-u'root'?-p${pwd}?$@?|? ??sed?'s/(GRANT?.*)/1;/;s/^(Grants?for?.*)/--?1?/;/--/{x;p;x;}' } expgrants?>?./grants.sql
2、生成權(quán)限SQL腳本
[root@HKBO?~]#?./exp_grant.sh? ? [root@HKBO?~]#?head?grants.sql --?Grants?for?root@127.0.0.1? GRANT?ALL?PRIVILEGES?ON?*.*?TO?'root'@'127.0.0.1'?IDENTIFIED?BY?PASSWORD?'*EB3EA446C759C9DA93F84FCB56430DBEF051A9DD'?WITH?GRANT?OPTION; GRANT?ALL?PRIVILEGES?ON?`CNBO0815`.*?TO?'root'@'127.0.0.1'?WITH?GRANT?OPTION; ? --?Grants?for?root@172.16.10.%? GRANT?ALL?PRIVILEGES?ON?*.*?TO?'root'@'172.16.10.%'?IDENTIFIED?BY?PASSWORD?'*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'; ? --?Grants?for?CNBO@192.168.1.%? GRANT?USAGE?ON?*.*?TO?'CNBO'@'192.168.1.%'?IDENTIFIED?BY?PASSWORD?'*ABD91BAD4A3448428563952E281015B237310EA8'; ?????????........................... ? --Author?:?Leshami --Blog???:?http://blog.csdn.net/leshami
3、在目標(biāo)服務(wù)器上執(zhí)行腳本
將生成的腳本在目標(biāo)服務(wù)器上執(zhí)行即可。
mysql?-uname?-ppwd?<grants.sql><p>需要注意:</p> <p>a、目標(biāo)服務(wù)上為非空服務(wù)器,已經(jīng)存在一些賬戶及權(quán)限應(yīng)考慮會(huì)覆蓋的問題。</p> <p>b、如果僅僅需要遷移非root用戶,可以在原腳本中添加過濾條件,即 where user'root' 。</p> <blockquote><p><strong>更多相關(guān)免費(fèi)學(xué)習(xí)推薦:</strong><a href="https://www.php.cn/course/list/51.html" target="_blank"><strong>mysql教程</strong></a><strong>(視頻)</strong></p></blockquote></grants.sql>
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END