mysql數據庫創建用戶、賦權、修改用戶密碼


創建新用戶

create user lisi identified by '123456';

查看創建結果:

 

授權

命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";

命令說明:

privilegesCode表示授予的權限類型,常見有:

  1. all privileges:所有權限;
  2. select:讀取權限;
  3. delete:刪除權限;
  4. update:更新權限;
  5. create:創建權限;
  6. drop:刪除數據庫、數據表權限。

dbName.tableName表示授予權限的具體庫或表,常用有:

  1. “ *.* 點號表示授予用戶所有數據庫和表的權限;
  2. dbName.*:授予dbName數據庫所有表的權限;
  3. dbName.dbTable:授予數據庫dbName中dbTable表的權限。   

username@host中的host表示允許登錄的IP,常見有:

  1. localhost只允許該用戶在本地登錄,不能遠程登錄;
  2. %:允許遠程登錄;
  3. 192.168.12.34具體的IP表示只允許該用戶從特定IP登錄。

新建一個數據庫 dblisi:create database dblisi;

賦權李四去使用數據庫dblisi:允許遠程,密碼為123456

grant all privileges on dblisi.* to lisi@'%' identified by '123456';

刷新權限:flush privileges;

退出用賬號lisi登錄:mysql -u lisi -p

輸入密碼123456

登陸成功后切換數據庫:

 

可見只有數據庫dblisi的使用權。

update mysql.user set password = password('12345678') where user = 'lisi' ;

 

注意:在mysql8的版本中授權命令發生了改變,先: create user root@‘%’  identified by '123456'; 再:grant all privileges on *.*  to 'root'@'%';

里面的*和%就自選了。

 

 

修改用戶密碼

直接修改登錄用戶的密碼:

 

 雖然0 rows affected,刷新失敗,但是退出去用密碼123可以登錄進來;

遠程也能連接:

 

 

 登錄root,修改密碼為123,刷新,如下:

 

 同樣 0 rows affected,但是刷新成功;

遠程登錄卻失敗:

 

 

這是個奇怪的現象。看來修改root密碼用set password並不行。換一個方式:

update mysql.user set authentication_string=password('123') where user='root';
刷新:flush privileges;

連接成功!

 

 

 注意,新版的mysql下authentication_string才是密碼字段。

 

刪除用戶

drop user username@'%';


免責聲明!

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



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