繁体   English   中英

Mysql:允许查询其他不可用的列?

[英]Mysql: allow query on an otherwise inaccesible column?

我有一个表格,我希望阻止某些用户查看。 我理解我应该能够使用视图执行此操作,即具有排除特定列的视图,并拒绝访问该表但允许访问视图(注意,用户无需更新表/视图)。

然而, 想允许针对该领域的平等查询。 如:

SELECT * FROM some_table_or_view WHERE hidden_field = 'some_value';

澄清:

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

这可能吗?

(编辑:如果在除mysql之外的dbms中有解决方案,我也很高兴听到这个)。

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

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

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

不它不是。 为用户提供使用hidden_​​value列过滤结果的可能性意味着他们具有选择权限,这也意味着他们可以查看列,从而选择它。 这里http://dev.mysql.com/doc/refman/5.1/en/grant.html是您可以授予或不授予mySQL中用户权限的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM