我在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 |
......有人能告诉我为什么会这样吗?有没有解决方案(解决办法?)?
发布于 2013-11-27 14:47:16
是的,当然在mysql中有一个解决你的问题的方法。
使用GRANT和REVOKE来完成此操作,它们位于SQL中的数据控制语言之下。
我给出了一个如何使用它的例子。
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 ;https://stackoverflow.com/questions/18836076
复制相似问题