如何防止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)
在这里,我们将阻止主机名为“localhost”的用户“Chris”访问一个名为“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)
阅读更多:MySQL 教程
极客教程