MySQL中實現DROP USER if EXISTS `test`,即創建新用戶時檢測用戶是否存在


MySQL中實現DROP USER if EXISTS `test`,即創建新用戶時檢測用戶是否存在

 版權聲明:本文為博主原創文章,歡迎大家轉載,注明出處即可。有問題可留言,會盡快回復,歡迎探討! https://blog.csdn.net/m0_37684310/article/details/78606426

最近在工作中碰到這樣一個問題,使用數據庫腳本更新數據庫,檢測用戶是否存在,不存在的話創建,分配庫的權限,存在則跳過;

第一個想到的就是類似刪除表的判斷DROP TABLE if EXISTS `test_table`;

用DROP USER if EXISTS `test`;會報語法錯誤,ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if EXISTS `test`' at line 1;

然后查找資料,據說MySQL 5.7以上版本支持此語法,創建新用戶時檢測用戶是否存在怎么做,最終得到答案:

 

-- 賦予testUser用戶對所有表都沒權限,即只有查看的權限,不能增刪改查,而用戶不存在則創建
GRANT USAGE ON *.* TO 'testUser'@'%' identified by '123456';

--刪除用戶
drop user testUser@'%'; 
flush privileges; 

--再創建用戶,將mysqltest數據庫的權限給testUser用戶
create user testUser@'%' identified by '123456';
grant all on mysqltest.* to testUser;
flush privileges;

 

總體邏輯就是:先創建再刪除,再創建,

1.當初次插入數據時,先創建用戶testUser,再刪除,然后再創建用戶testUser

2.當更新數據庫時,先修改testUser用戶的權限,然后刪除,再創建用戶testUser


免責聲明!

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



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