同一用户对sql中同一个表的不同字段/列的不同角色

时间:2013-05-23 05:59:02

标签: sql

我想给一个用户SELECT访问整个表但UPDATE / INSERT / DELETE只是表的一部分。该表具有设置为ID的标志,用户可以更改该数据集。例如,工程师可以查看公司所有井的数据,但他只能更改他负责的井的数据。那些井将有一个标志,如工程师标志= A.另一名工程师将有工程师标志= B.工程师A可以选择具有B工程师标志的井,但他只能用A标志改变井的数据。

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

我感谢任何指导!

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

为每个操作使用触发器,更新,插入和删除。在每个触发器内部,您可以轻松确定是否允许它,具体取决于它是谁。