Mysql:允许查询否则无法访问的列?

标签 mysql sql

我有一个表格,其中有一列我想阻止某些用户看到。我知道我应该能够使用 View 来做到这一点,即有一个排除特定列的 View ,并拒绝访问表但允许访问 View (注意,用户不需要能够更新表/ View )。

确实但是想要允许对该字段进行相等查询。如:

SELECT * FROM some_table_or_view WHERE hidden_field = 'some_value';

澄清一下:

  • 不应在一般查询中返回 hidden_​​field
  • 应该可以在 hidden_​​field 值上运行带有约束(最好只有相等约束)的查询

这可能吗?

(编辑:如果在 Mysql 以外的 dbms 中有解决方案,我也很乐意听到)。

最佳答案

您可以创建一个存储过程,它会返回您允许它返回的所有字段,然后您可以将 hidden_​​value(过滤条件)作为参数传递。

禁止您的数据库用户访问该表,但允许他们调用存储过程。

当然,如果您对表有多种类型的查询,则您将不得不创建多个存储过程。但至少它解决了您的权利问题。

关于Mysql:允许查询否则无法访问的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175472/

相关文章:

mysql - 如何向 Schema 类的 DBIx 搜索方法提供附加参数

php 错误列计数与第 1 行的值计数不匹配?

mysql - MongoDB、MySQL 和 PostGreSQL 的比较

javascript - 使用 html 和 javascript 的动态 TableView

sql - 如何使用多个 INNER JOIN 加速查询

sql - 使用 PostgreSQL 减去两个日期

javascript - 我的接收器如何输入消息并显示在我的浏览器上

php - 如何执行存储在 MySQL 数据库中的 PHP?

.net - SQL Server 的两个管理员帐户

php - 如何在一个 MySQL 查询中选择 2 个连接表?