目錄
- 用戶管理
- 忘記root密碼的解決方法
- 授權(quán)控制
- 分配權(quán)限
- 撤銷權(quán)限
- 總結(jié)
用戶管理
新建用戶
語法
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'
示例
mysql> create user 'lisi'@'localhost' identified by '123123';
Query OK, 0 rows affected (0.00 sec)
username:將創(chuàng)建的用戶名
localhost:指定用戶那些主機上可以登錄,可登錄的IP地址,網(wǎng)段,主機名,如果是本機可以用localhost,如果想讓用戶可以任意運程登錄,可以使用通配符%。
mysql> select password(123123);
+-------------------------------------------+
| password(123123) |
+-------------------------------------------+
| *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec
//上面的碼就是加密過后的123123
password:因為mysql5.7版本啟用了密碼增強插件,密碼不能為空,必須符合密碼復(fù)雜性要求,經(jīng)過加密再寫入數(shù)據(jù)庫。
查看當(dāng)前用戶
select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
創(chuàng)建后的用戶是保存在mysql數(shù)據(jù)庫的user表里
mysql> use mysql;
mysql> select user,authentication_string,host from user;
+---------------+-------------------------------------------+-----------+
| user | authentication_string | host |
+---------------+-------------------------------------------+-----------+
| root | | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost |
| lisi | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 | localhost |
+---------------+-------------------------------------------+-----------+
4 rows in set (0.00 sec)
//lisi就是我們添加的
嘗試登錄lisi
[root@web3 ~]# mysql -ulisi -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.7.20-log Source distribution
//成功
重命名用戶名
語法
RENAME USER 'old_user'@'localhost' TO 'new_user'@'host'
old_user是舊的用戶名,new_user是新的用戶名,重新加載用戶lisi后,把它改改為zhangsan。
示例
mysql> RENAME USER 'lisi'@'localhost' TO 'zhangsan'@'192.168.200.4';
Query OK, 0 rows affected (0.00 sec)
查看效果
use mysql
mysql> select user,authentication_string,host from user;
+---------------+-------------------------------------------+---------------+
| user | authentication_string | host |
+---------------+-------------------------------------------+---------------+
| root | | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost |
| zhangsan | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 | 192.168.200.4 |
+---------------+-------------------------------------------+---------------+
4 rows in set (0.00 sec)
重命名成功 ,主機也由host改為IP地址了。
給用戶設(shè)置密碼
修改用戶密碼由兩種,一可以修改當(dāng)前用戶,二是修改其他用戶。
方法一語法
SET PASSWORD = PASSWORD('password')
方法二語法
SET PASSWORD='username'@'host'=PASSWORD('password');
注:退出后需要使用新密碼
忘記root密碼的解決方法
忘掉別的用戶密碼,可以使用root用戶重新設(shè)置,但root忘掉了,就要采用特殊方法進行。
方法1:停止mysql服務(wù)進程。
使用mysqld_safe結(jié)合skip-grant-tables啟動數(shù)據(jù)庫
它的作用就是用戶登錄時不授權(quán)表。
mysql_safe --skip-grant-tables
//這時mysql已經(jīng)啟動
mysql 直接不使用密碼進入,使用update修改密碼
注:修改密碼后 刷新數(shù)據(jù)庫
flush privileges;
然后就去嘗試登錄新密碼root
授權(quán)控制
權(quán)限非常重要,分配權(quán)限設(shè)置也非常重要,分配權(quán)限庫清晰劃分責(zé)任,最重要就是保證系統(tǒng)數(shù)據(jù)庫的安全。
授予權(quán)限
語法
GRANT 權(quán)限列表 ON 庫名.表名 TO 用戶名@主機地址 IDENTIFIED BY 'password';
常用的權(quán)限:all,create,drop,insert,delete,update,select
示例
新增一個用戶
grant [權(quán)限1,權(quán)限2,權(quán)限3..] on *.* to user@'host' identified by 'pasword';
分配權(quán)限
grant all on *.* to lisi@'192.168.1.%' identified by '111111';
注:當(dāng)用戶名和主機名在數(shù)據(jù)庫不存在時,用戶名與主機名會被創(chuàng)建,也就是相當(dāng)于添加了一個用戶數(shù)據(jù),登錄的密碼也是后面指定的密碼,如果你原先密碼是1212,grant后面跟的密碼不一樣是123123,會相當(dāng)于修改了密碼。
查看權(quán)限
SHOW GRANTS FOR 'username'@'主機地址';
撤銷權(quán)限
語句
revoke 權(quán)限列表 on 數(shù)據(jù)庫.表 from 用戶@'主機地址';
撤銷權(quán)限全部
revoke all on *.* from lisi@'192.168.1.%';
總結(jié)
到此這篇關(guān)于mysql創(chuàng)建用戶并賦予用戶權(quán)限詳細(xì)操作的文章就介紹到這了,更多相關(guān)mysql創(chuàng)建用戶并賦予權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 淺談MySQL user權(quán)限表
- Mysql 用戶權(quán)限管理實現(xiàn)
- 詳解MySQL 用戶權(quán)限管理
- MySQL 權(quán)限控制細(xì)節(jié)分析
- MySQL 權(quán)限控制詳解
- Mysql修改存儲過程相關(guān)權(quán)限問題
- MySQL8.0設(shè)置遠程訪問權(quán)限的方法
- MySQL之權(quán)限以及設(shè)計數(shù)據(jù)庫案例講解