用戶
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 '用戶名'@'登陸位置';