1

我创建了一个用户来仅从 MySQL 中选择/读取数据,但我仍然可以从数据库中删除表。这个 SQL 脚本有什么问题。

create user 'test'@'%' Identified by 'test!';
grant SELECT ON * . * TO 'test'@'%';
FLUSH PRIVILEGES;
4

2 回答 2

0

您需要以 root 身份连接到数据库。

mysql -u root -p  

我还注意到正确的命令应该是

GRANT SELECT ON *.* TO 'test'@'%';

同时你的是

grant SELECT ON * . * TO 'test'@'%';

也就是说,你有太多的空间(这可能是破坏者)。

然后只需使用测试用户

mysql -u test -p

并运行更新查询。

您应该收到一个错误

command denied to user

你也可以试着告诉你到底在使用什么:

GRANT SELECT ON databasename.viewname TO 'test'@'identifythehost';
于 2014-06-27T14:54:13.860 回答
0

很可能test每个人都可以修改您的数据库。尝试这个:

DELETE FROM mysql.db WHERE Db IN('test', 'test\_%');
FLUSH PRIVILEGES;
于 2015-08-11T10:59:08.813 回答