【问题标题】:Prevent a particular table being modified in SQL by a particular user防止特定用户在 SQL 中修改特定表
【发布时间】:2012-11-13 14:26:52
【问题描述】:

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

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

【问题讨论】:

    标签: mysql sql phpmyadmin database-permissions


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以更改更新语句以使用current_user() 函数:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多