0

我想为用户提供对整个表的 SELECT 访问权限,但对表的一部分进行 UPDATE/INSERT/DELETE 访问。该表已将标志设置为 ID,用户可以更改哪些数据集。例如,工程师可以查看公司所有井的数据,但他只能更改他负责的井的数据。这些井会有一个标志,例如工程师标志 = A。另一个工程师会有工程师标志 = B。工程师 A 可以选择带有 B 工程师标志的井,但他只能更改带有 A 标志的井的数据。

我所做的所有研究只显示了如何设置它以访问整个表或不访问。其他人建议拆分到不同的表,但强烈希望将表保持在一起,以便我们可以更容易地更改标志,而不是将数据从一个表导出到另一个表。

我很感激任何指导!

4

2 回答 2

1

这可以通过以下两种方式之一完成:

  • 从您正在实现数据库的程序代码中,这将验证工程师和油井之间的关联;或者
  • 来自SQL Server 内部的UPDATE, INSERT,DELETE函数,该函数将接收工程师的 ID 和他试图访问的井作为参数。

为此,每口井都必须与工程师相关联,并分配给他访问、更新、删除或插入信息的权限。

于 2013-05-23T06:03:45.360 回答
0

为这些操作中的每一个使用触发器,更新、插入和删除。在每个触发器中,您可以根据它的身份轻松确定是否应该允许它。

于 2013-05-23T09:25:02.983 回答