我目前有两张桌子。一个是帐户,一个是tbl_units_info。我的老板要我这样做,以便限制帐户读取表格中的某些行。坦率地说,我认为我的老板不知道他在说什么,但我希望这里有人可以证明我错了。
例如,accountname krikara只能查看TBB列为0909的tbl_units_info表的条目。
这甚至可能吗?要使krikara只能查看该表中TBID = 0909?
列的行答案 0 :(得分:1)
您可以通过向帐户提供视图的阅读权而不是整个表来解决此问题。
CREATE VIEW `tbl_units_info_krikara` AS
SELECT * FROM `tbl_units_ino` WHERE `TBID`='0909';
然后为您的用户分配相应的权限。
答案 1 :(得分:1)
由于SELECT
权限具有表级别,因此无法在DBMS级别上明确实现。您不能限制行读取。我认为这很好 - 因为数据可以更改,所以一般来说行限制没有可靠的条件(因此,在DBMS级别上没有有效的实现)。
但是,你可以使用VIEW
- 但它是一个中间点,不是常见的解决方案(我仍然认为它不会有助于跟踪行更改,但可能因为你的应用程序逻辑而错了)
你可以尝试在你的应用程序中实现它,但它仍然有我上面描述的问题:在表中,数据正在改变。跟踪所有更改可能会遇到麻烦。我认为您可以在两个(多个)表上分隔行,然后构建权限模型。但是 - 如果某些基本相似的实体必须具有不同的权限 - 可能您应该重新考虑应用程序安全模型吗?