MySQL之用戶管理(數據庫授權,權限回收,修改用戶密碼)

用戶

1.用戶信息
MySQL中的用戶都存儲在系統數據庫mysql的user表

mysql> use mysql;
Database changed
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *9B09A5B43380B18B737EDE4E457F22A8E95AB82B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+

注:

  • host:表示這個用戶可以從哪個主機登錄,如果是localhost,表示只能從本機登錄
  • user:用戶名
  • authentication_string:用戶密碼通過password函數加密後的

2.創建用戶
語法:create user '用戶名'@‘登錄主機/ip’ identified by '密碼';

案例:

mysql> create user 'testSQL'@'localhost' identified by '123456';


mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *9B09A5B43380B18B737EDE4E457F22A8E95AB82B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | testSQL       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+---------------+-------------------------------------------+

創建用戶沒有給該用戶設置權限,此時只能查看一個數據庫

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+

3.修改用戶密碼
語法:

  • 自己改自己的密碼
set password=password('新的密碼');
  • root用戶修改指定用戶的密碼
set password for '用戶名'@'主機名'=password('新的密碼');

4.刪除用戶
語法:drop user '用戶名'@'主機名';

mysql> drop user 'testSQL'@'localhost';
Query OK, 0 rows affected (0.00 sec)

數據庫的權限

1.給用戶授權
語法:grant 權限列表 on 庫.對象名 to '用戶名'@'登陸位置' [identified by '密碼']
注:

  • 權限列表,多個權限用逗號分隔
grant select on.....
grant select,delete,create on....
grant all on....--all表示給該用戶所有權限
  • *.*代表本系統中的所有數據庫的所有對象(表、視圖、存儲過程等)
  • 庫.*表示某個數據庫中的所有數據對象(表、視圖、存儲過程等)
  • 如果發現賦值權限後,沒有生效,執行如下命令flush privileges;

2.回收權限
語法:revoke 權限列表 on 庫.對象名 from '用戶名'@'登陸位置';

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章