【问题标题】:How to hide column from user in MySQL table如何在 MySQL 表中隐藏用户的列
【发布时间】:2015-02-19 16:43:09
【问题描述】:

我认为这很容易,但显然(令我沮丧的是)事实并非如此。

我有一个用户。我们会说用户的名字是'user'。我只是想让这个用户看不到我的 MySQL 数据库中的列。

我正在使用 HeidiSQL。似乎没有办法使用 GUI 来禁止用户查看表中的列。所以我认为以下方法会起作用;

GRANT SELECT ON database_name.user TO 'user'@'%';
GRANT SELECT (column_name) ON database_name.table_name TO 'user'@'%';
REVOKE SELECT (column_name) ON database_name.table_name FROM 'user'@'%';

但事实并非如此。每当我刷新权限并通过用户登录时,我仍然会看到我不希望用户看到的列。

具体的算法是什么?我想假设这是可能的。

提前致谢,

-安东尼

【问题讨论】:

    标签: mysql database privileges sql-grant


    【解决方案1】:

    我们可以在列级别授予/撤销权限,因为 MySQL 将列权限存储在 mysql.columns_priv 表中,并且应该应用于表中的单个列。

    GRANT SELECT (col1), INSERT (col1,col2) ON dbname.tblname TO 'user'@'hostname'; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      相关资源
      最近更新 更多