我有一个表格,我希望阻止某些用户查看.我理解我应该能够使用视图执行此操作,即具有排除特定列的视图,并拒绝访问该表但允许访问视图(注意,用户无需更新表/视图).
我做不过要允许针对该领域的平等查询.如:
SELECT * FROM some_table_or_view WHERE hidden_field = 'some_value';
Run Code Online (Sandbox Code Playgroud)
澄清:
hidden_field在一般查询中返回值hidden_field值这可能吗?
(编辑:如果在除mysql之外的dbms中有解决方案,我也很高兴听到这个).
您可以创建一个存储过程,该过程将返回您允许其返回的所有字段,然后您可以将隐藏值(过滤条件)作为参数传递。
禁止数据库用户访问该表,但允许他们调用存储过程。
当然,如果您对该表有多种类型的查询,则必须创建多个存储过程。但至少它解决了你的权利问题。