中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL的權限原理及怎么樣刪除MySQL匿名賬戶

發布時間:2020-04-30 15:49:23 來源:億速云 閱讀:168 作者:三月 欄目:數據庫

下文主要給大家帶來MySQL的權限原理及怎么樣刪除MySQL匿名賬戶,希望MySQL的權限原理及怎么樣刪除MySQL匿名賬戶能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

MySQL權限系統的工作原理

MySQL權限系統通過下面兩個階段進行認證:

(1)對連接的用戶進行身份認證,合法的用戶通過認證,不合法的用戶拒絕連接;

(2)對通過認證的合法用戶賦予相應的權限,用戶可以在這些權限范圍內對數據庫做相應的操作。

對于身份的認證,MySQL是通過IP地址和用戶名聯合進行確認的,例如MySQL安裝后默認創建的用戶root@localhost表示用戶root只能從本地(localhost)進行連接才可以通過認證,此用戶從其他任何主機對數據庫進行的連接都將被拒絕。也就是說,同樣的一個用戶名,如果來自不同的IP地址,則MySQL將其視為不同的用戶。

MySQL的權限原理及怎么樣刪除MySQL匿名賬戶

MySQL的權限表在數據庫啟動的時候就載入內存,當用戶通過身份認證后,就在內存中進行相應權限的存取,這樣,此用戶就可以在數據庫中做權限范圍內的各種操作了。所以在對用戶做了修改操作后flush privileges;后才會生效。

在權限存取的兩個過程中,系統會用到“mysql”數據庫(安裝MySQL時被創建,數據庫名稱叫“mysql”)中user、host和db這3個最重要的權限表。在這3個表中,最重要的表是user表,其次是db表,host表在大多數情況下并不使用。user中的列主要分為4個部分:用戶列、權限列、安全列和資源控制列。

當用戶進行連接的時候,權限表的存取過程有以下兩個階段。

  • 先從user表中的host、user和password這3個字段中判斷連接的IP、用戶名和密碼是否存在于表中,如果存在,則通過身份驗證,否則拒絕連接。

  • 如果通過身份驗證,則按照以下權限表的順序得到數據庫權限:user->db->tables_priv->columns_priv。

在這幾個權限表中,權限范圍依次遞減,全局權限覆蓋局部權限。

  •  Host值可以是主機名或IP號,或“localhost”指出本地主機。

  • 可以在Host列值使用通配符字符“%”和“_”。

  • Host值“%”匹配任何主機名,空Host值等價于“%”。它們的含義與LIKE操作符的模式匹配操作相同。例如,“%”的Host值與所有主機名匹配,而“%.mysql.com”匹配mysql.com域的所有主機。

如果權限表中的host既有“thomas.loc.gov”,又有“%”,而此時,連接從主機thomas.loc.gov過來。顯然,user表里面這兩條記錄都符合匹配條件,那系統會選擇哪一個呢?

如果有多個匹配,云服務器必須選擇使用哪個條目。按照下述原則來解決:

l 云服務器在啟動時讀入user表后進行排序;

l 然后當用戶試圖連接時,以排序的順序瀏覽條目;

l 云服務器使用與客戶端和用戶名匹配的第一行。

當云服務器讀取表時,它首先以最具體的Host值排序。主機名和IP號是最具體的。“%”意味著“任何主機”并且是最不特定的。有相同Host值的條目首先以最具體的User值排序(空User值意味著“任何用戶”并且是最不特定的)。

排序前:
 +-----------+----------+-
| Host      | User    | …
+-----------+----------+-
|%         | root     | …
|%         | jeffrey  | …
|localhost | root     | …
|localhost |          | …
+-----------+----------+-
排序后:
 
+-----------+----------+-
|Host      | User     | …
+-----------+----------+-
|localhost | root     | … ...
|localhost |          | …...
|%         |jeffrey  | … ...
|%         |root     | … ...
+-----------+----------+-


刪除匿名用戶:

mysql版本5.6.18

查看用戶

mysql> select user,host,plugin,password,authentication_string,password_expired from mysql.user;
+------+-----------+-----------------------+-------------------------------------------+-----------------------+------------------+
| user | host      | plugin                | password                                  | authentication_string | password_expired |
+------+-----------+-----------------------+-------------------------------------------+-----------------------+------------------+
| root | localhost |                       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |                       | N                |
| root | rhel7     |                       |                                           |                       | N                |
| root | 127.0.0.1 |                       |                                           |                       | N                |
| root | ::1       |                       |                                           |                       | N                |
|      | localhost |                       |                                           | NULL                  | N                |
|      | rhel7     |                       |                                           | NULL                  | N                |
| zx   | %         | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |                       | N                |
+------+-----------+-----------------------+-------------------------------------------+-----------------------+------------------+

使用不存在的用戶也可以登錄MySQL

[root@rhel7 mysql5.6.18]# ./bin/mysql -ua
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.6.18-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

刪除user為空的用戶

mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

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

mysql> select user,host,plugin,password,authentication_string,password_expired from mysql.user;
+------+-----------+-----------------------+-------------------------------------------+-----------------------+------------------+
| user | host      | plugin                | password                                  | authentication_string | password_expired |
+------+-----------+-----------------------+-------------------------------------------+-----------------------+------------------+
| root | localhost |                       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |                       | N                |
| root | rhel7     |                       |                                           |                       | N                |
| root | 127.0.0.1 |                       |                                           |                       | N                |
| root | ::1       |                       |                                           |                       | N                |
| zx   | %         | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |                       | N                |
+------+-----------+-----------------------+-------------------------------------------+-----------------------+------------------+
5 rows in set (0.00 sec)

使用不存在的用戶不能再登錄MySQL

[root@rhel7 mysql5.6.18]# ./bin/mysql -ua
ERROR 1045 (28000): Access denied for user 'a'@'localhost' (using password: NO)

對于以上關于MySQL的權限原理及怎么樣刪除MySQL匿名賬戶,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库车县| 隆安县| 博客| 紫金县| 元朗区| 涟源市| 灵丘县| 云南省| 彩票| 阿克| 都兰县| 湄潭县| 青川县| 泰兴市| 织金县| 榆树市| 榆林市| 龙井市| 大石桥市| 西宁市| 双城市| 莱州市| 阿瓦提县| 苗栗县| SHOW| 苏州市| 望江县| 句容市| 上杭县| 余江县| 大名县| 囊谦县| 岳阳县| 芜湖市| 呼和浩特市| 墨江| 琼中| 攀枝花市| 汶川县| 二连浩特市| 绩溪县|