如何防止使用者訪問 MySQL 中的特定架構?


如要防止使用者訪問特定架構,需要使用 delete 命令。以下是語法 -

DELETE FROM mysql.db WHERE Db IN("yourSpecificSchema","yourSpecificSchema\_%")
   AND User = "yourUserName" AND Host = "yourHostName";

讓我們實現上述語法,以防止使用者訪問特定架構。首先,我們從 MySQL.user 表中顯示所有使用者和主機。

mysql> select user,host from MySQL.user;

這將產生以下輸出 -

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Bob              | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam Smith       | localhost |
| Chris            | localhost |
| David            | localhost |
| James            | localhost |
| John             | localhost |
| John Doe         | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
+------------------+-----------+
18 rows in set (0.00 sec)

在此,我們將阻止使用者“Chris”和主機名“localhost”訪問名為“sample”的特定架構 -

mysql> DELETE FROM mysql.db WHERE Db IN("sample","sample\_%") AND User="Chris" AND Host="localhost";
Query OK, 0 rows affected (0.00 sec)

在執行上述查詢後,需要使用 FLUSH。

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.06 sec)

更新時間:2019 年 7 月 30 日

412 Views

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.