防止特定用户在SQL中修改特定表

时间:2012-11-26 05:47:53

标签: mysql sql phpmyadmin database-permissions

正如标题所说,但是我已经尝试了一切以防止用户修改此表而没有运气

出于某种原因,在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

2 个答案:

答案 0 :(得分:1)

您无法仅从一个表中锁定MySQL用户。如果他们已拥有整个数据库的权限,则您需要撤消该权限,并在他们执行需要能够触及的特定表格上重新授予他们访问权限。

答案 1 :(得分:0)

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

update mytable set
...
where id = ?
and current_user() not in ('john', 'bob', 'sally')