mysql用戶和權限管理(Linux系統下)


在mysql自帶的庫中有一個mysql,這個庫包含了太多的東西,其中有一張表user,這張表存儲了所有的用戶信息。

mysql> select user,host,password from user;
+------+-----------------------+-------------------------------------------+
| user | host                  | password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *E01F5425C006D5AF5E3E22EEF9D6AF6BD19FDFED |
| root | localhost.localdomain |                                           |
| root | 127.0.0.1             |                                           |
| root | ::1                   |                                           |
|      | localhost             |                                           |
|      | localhost.localdomain |                                           |
+------+-----------------------+-------------------------------------------+
6 rows in set (0.00 sec)
查詢user表

一、重置密碼

首先來解決,如果root密碼忘記了,該怎么解決?

 找回密碼有前提,前提就是你能夠停止mysql服務。
1)停服務
# /etc/init.d/mysqld stop
2)使用跳過授權表的方式啟動數據庫
# mysqld_safe --skip-grant-tables --user=mysql &

關閉:mysqladmin   shutdown

3)匿名登錄
# mysql
4)修改user表
mysql> update user set password='' where user='root' and host='localhost';
5)重啟mysql服務
# /etc/init.d/mysqld restart

6)重設密碼

 

二、用戶管理

1.創建用戶

  語法:create user 用戶名@主機 identified by 密碼;

mysql> create user kebi@localhost identified by '123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from user;
+------+-----------------------+-------------------------------------------+
| user | host                  | password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | localhost.localdomain |                                           |
| root | 127.0.0.1             |                                           |
| root | ::1                   |                                           |
|      | localhost             |                                           |
|      | localhost.localdomain |                                           |
| kebi | localhost             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+-----------------------+-------------------------------------------+
7 rows in set (0.00 sec)
創建一個人用戶實例

 

2.刪除用戶

語法:drop user 用戶名@主機;

mysql> select user,host,password from user;
+------+-----------------------+-------------------------------------------+
| user | host                  | password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | localhost.localdomain |                                           |
| root | 127.0.0.1             |                                           |
| root | ::1                   |                                           |
|      | localhost             |                                           |
|      | localhost.localdomain |                                           |
+------+-----------------------+-------------------------------------------+
6 rows in set (0.00 sec)
刪除用戶實例

 

3.授權

grant不僅可以用來授權,還可以用來創建用戶;

授權的語法:grant 權限列表 on 庫名.表名 to 用戶@主機 identified by '密碼';

刷新權限:flush privileges;

mysql> grant all on *.* to kebi@'192.168.%.%' identified by '123';   #*.*:所有庫上的所有表; 192.168.%.%192.168內的所有Ip;123:密碼
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from user;
+------+-----------------------+-------------------------------------------+
| user | host                  | password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | localhost.localdomain |                                           |
| root | 127.0.0.1             |                                           |
| root | ::1                   |                                           |
|      | localhost             |                                           |
|      | localhost.localdomain |                                           |
| kebi | 192.168.%.%           | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+-----------------------+-------------------------------------------+
7 rows in set (0.00 sec)
授權用戶
mysql> grant select,insert on class_7.* to maoxian@localhost identified by '123';
授權 讀,寫 在庫 class_7上的所有表 對於 毛線 用123登陸
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from user;
+---------+-----------------------+-------------------------------------------+
| user    | host                  | password                                  |
+---------+-----------------------+-------------------------------------------+
| root    | localhost             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root    | localhost.localdomain |                                           |
| root    | 127.0.0.1             |                                           |
| root    | ::1                   |                                           |
|         | localhost             |                                           |
|         | localhost.localdomain |                                           |
| kebi    | 192.168.%.%           | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| maoxian | localhost             | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+---------+-----------------------+-------------------------------------------+
8 rows in set (0.00 sec)
授權部分權限

 

4.查看用戶權限

回收語法:show grants for 用戶@主機;

mysql> show grants for maoxian@localhost;
+----------------------------------------------------------------------------------------------------------------+
| Grants for maoxian@localhost                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'maoxian'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
| GRANT SELECT, INSERT ON `class_7`.* TO 'maoxian'@'localhost'                                                   |
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
查看用戶權限

 

5.回收權限

回收權限有兩種方法:刪除用戶和revoke

回收語法:  revoke 權限 on 庫名.表名 from 用戶@主機;

mysql> revoke insert,select on *.* from maoxian@localhost;
Query OK, 0 rows affected (0.00 sec)
回收部分權限
mysql> revoke all on *.* from maoxian@localhost;
Query OK, 0 rows affected (0.00 sec)
回收全部權限

 


免責聲明!

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



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