0

我目前有两张桌子。一个是帐户,一个是 tbl_units_info。我的老板希望我这样做,以便限制帐户读取表格中的某些行。坦率地说,我认为我的老板不知道他在说什么,但我希望这里有人能证明我错了。

例如,accountname krikara 只能查看 tbl_units_info 表中 TBID 列为 0909 的条目。

这甚至可能吗?为了让 krikara 只能查看该表中列 TBID = 0909 的行?

4

2 回答 2

1

您可以通过仅授予帐户对视图而不是整个表的读取权限来解决此问题。

CREATE VIEW `tbl_units_info_krikara` AS
SELECT * FROM `tbl_units_ino` WHERE `TBID`='0909';

然后将相应的权限分配给您的用户。

于 2013-10-23T07:58:12.870 回答
1

它不能在 DBMS 级别上简单地实现,因为SELECT权限具有表级别。您不能限制行读取。这很好,我认为 - 因为数据可以更改,所以一般来说行限制没有可靠的条件(因此,在 DBMS 级别上不可能有有效的实现)。

但是,您可以使用VIEW- 但它是一个中间点,不是常见的解决方案(我仍然认为它不会有助于跟踪行更改,但由于您的应用程序逻辑,我可能错了)

您可以尝试在您的应用程序中实现它,但它仍然存在我上面描述的问题:在表中,数据正在变化。您可能很难跟踪所有更改。我认为你可以在两个(几个)表上分开你的行,然后建立你的权限模型。但是 - 如果一些基本相似的实体必须具有不同的权限 - 也许您应该重新考虑应用程序安全模型?

于 2013-10-23T07:58:31.163 回答