我在MDS中创建了Product实体。 它具有以下值: 自行车1 ABC 车2 XYZ 周期3 RRR
所有者XYZ可以更改RRR的记录。但如果所有者XYZ或该实体中的任何其他所有者试图更新ABC的记录,则应拒绝访问。这意味着,没有人应该有权更改ABC输入的记录。 为此我执行了以下内容:CREATE TRIGGER mdm.product_readonly
ON mdm.tbl_1034_1215_en
AFTER UPDATE, INSERT AS
If exists (system_user!='ABC')
and EXISTS (SELECT * FROM deleted a, inserted b, mdm.vw_product c
WHERE a.code=c.code
or b.code=c.code
And c.owner = 'ABC')
BEGIN
ROLLBACK TRANSACTION
RAISERROR ('Attempt to change a read-only row', 16, 1)
RETURN
END
执行此操作后,如果我尝试将记录更新为ABC所有者,我可以更新所有记录。如果我尝试更新为ABC所有者以外的其他人,我无法更新ABC记录。但是从MDS我无法更新任何记录。它显示为数据库错误。
我们如何实现这一目标。在这方面请帮帮我。 谢谢!
答案 0 :(得分:0)
请查看如何为MDS设置权限。
http://msdn.microsoft.com/en-us/library/hh231026.aspx
您可以为用户和/或群组设置权限。
我建议使用AD组分配权限,因为从长远来看这更容易保持。
如果您需要基于行的更复杂的权限概念,则可以使用派生层次结构设置权限。
权限设置也存储在MDSDB数据库的表中。如果您需要为许多用户设置权限,我建议使用代码来复制权限。如果需要,我可以提供一些片段。