0

我的表是这样的

ID   FileNumber   SellerRep   BuyerRep   Address
123  142366       John Doe    Steve Doe   123 Cute Ave
122  142365       Steve Doe   John Doe    412 Best Blvd
121  142364       John Doe    John Doe    234 Park Ave
120  132363       Steve Doe   Steve Doe   233 Cool St
119  132362       Steve Doe   Frank Good  432 Bad Street

users: johnd (lists his name as John Doe)
       steved (lists his name as Steve Doe)

我如何限制最终用户只能查看/查看他自己的条目。他的条目总是在 SellerRep 或 BuyerRep 列中包含他的名字,有时在两者中都包含他的名字,尽管它们可能拼写错误(例如 Steven Do 等)。但是,SellerRep 或 BuyerRep 列可能包含非用户的名称,如表示例中 ID #119 的条目中所示。

所以,基本上,如果 Steve Doe 登录,我希望他只看到 ID #119、120、122、123 的条目,如果 John Doe 登录,我想将他的视图限制为 ID #123 的记录, 122, 121. 但是,一个问题是其中一个可能在 SellerRep 或 BuyerRep 列中指定了另一个用户的全名,在这种情况下我不希望另一个用户看到这个条目。

有没有办法通过视图或触发器而不是在 PHP 页面中完成此操作,即使我必须在可能的情况下添加另一个列,如 @user 和 auto_complete。

我能想到的最起码是:

CREATE VIEW saleslogview
AS
SELECT *
FROM saleslog
WHERE SellerRep = 'Steve Doe';

CREATE VIEW saleslogview
AS
SELECT *
FROM saleslog
WHERE BuyerRep = 'John Doe';

CREATE VIEW saleslogview
AS
SELECT *
FROM saleslog
WHERE BuyerRep = 'Steve Doe';

CREATE VIEW saleslogview
AS
SELECT *
FROM saleslog
WHERE SellerRep = 'John Doe';

但是,当我尝试以用户 steved 或 johnd 的身份使用 SQLBuddy 登录并尝试搜索记录时,它并没有按预期工作 - 所有记录都是“可见的”。

也许有一种方法可以使用 SESSION_USER() 来完成此操作,但我对此一无所知。

4

0 回答 0