我认为这很容易,但显然(而且令我沮丧)事实并非如此。
我有一个用户。我们会说用户的名字是'用户'。我只是希望这个用户无法在我的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'@'%';
但它没有。每当我刷新权限并通过用户登录时,我仍然会看到我不希望用户看到的列。
究竟是什么算法?我想假设这是可能的。
提前致谢,
- 安东尼
答案 0 :(得分:1)
我们可以在列级别授予/撤销权限,因为MySQL在mysql.columns_priv表中存储列权限,并且应该应用于表中的单个列。
GRANT SELECT (col1), INSERT (col1,col2) ON dbname.tblname TO 'user'@'hostname';