随机用户可以访问mysql db

时间:2013-09-16 19:46:37

标签: python mysql python-2.7

我正在编写一个关于python和MySQL(MySQLdb,PyQT)的应用程序并面临一个问题。 我碰巧在登录表单上输入随机值时,这个随机用户可以访问数据库。这个用户不能使用SELECT,但他可以使用INSERT! 我是MySQL新手,这是我第一次遇到这样的问题。我看到的问题就像我要问的那个问题,但有一个随机用户能够登录到db,但没有权利做任何事情。 我查看了MYSQL.user表,没有用户名的用户没有权限来操作数据。输出如下:

| localhost                | root             | Y           | Y           | Y               |
| 127.0.0.1                | root             | Y           | Y           | Y           |
| localhost                |                  | N           | N           | N           |
......

有人可以建议为什么会这样,并且有解决方案(解决方法?)?

1 个答案:

答案 0 :(得分:0)

是的,当然在mysql中有一个解决你问题的方法。

使用GRANT和REVOKE这样做,它们位于SQL中的DATA CONTROL LANGUAGE下。

我举例说明如何使用它..

mysql> revoke all privileges on *.* from 'root'@'localhost';

使用此查询,我在所有数据库的所有表上撤消了root用户的所有权限。 如果我想在任何特定数据库的情况下那么..

mysql> revoke all privileges on exampledatabase.* from 'root'@'localhost';

如果我想要任何特定的表,那么..

mysql> revoke all privileges on exampledatabase.mytable from 'root'@'localhost';

如果我想在任何特定表的情况下限制特定权限,那么..

mysql> revoke select on exampledatabase.mytable from 'root'@'localhost';

现在我想在特定表格的情况下向root用户授予特定权限..

mysql> grant select on exampledatabase.mytable
   to 'root'@'localhost' identified by password
   '*A4B6157319038724E3560894F7F932C8886EBFCF' with grant option ;