0

正如标题所说,但是我已尽一切努力防止用户修改此表而没有运气

由于某种原因,mySQL 5.5 手册中不存在 DENY,因此以下内容不起作用

DENY ALL ON OBJECT::database.table TO user
DENY ALL ON database.table TO 'user'@'localhost'
REVOKE ALL ON database.table TO 'user'@'localhost'

最后一个给了我这个错误

There is no such grant defined for user 'user' on host 'localhost' on table 'table'

但是,如果是这种情况,那么它是否无法插入、选择或更新?

任何帮助表示赞赏,我将在下面添加系统信息。

软件:MySQL

软件版本:5.5.27 - MySQL 社区服务器 (GPL)

协议版本:10

Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7

数据库客户端版本:libmysql - mysqlnd 5.0.10

4

2 回答 2

1

您不能只从一张表中锁定 MySQL 用户。如果他们已经拥有整个数据库的权限,您需要撤销该权限并重新授予他们对他们确实需要能够接触的特定表的访问权限。

于 2012-11-26T06:22:36.570 回答
0

您可以更改更新语句以使用该current_user()功能:

update mytable set
...
where id = ?
and current_user() not in ('john', 'bob', 'sally')
于 2012-11-26T06:32:22.050 回答