防止用户更改 MS SQL Server 数据库中的某些列

Jos*_*nan 2 database-design sql-server locking

我想阻止用户更改 MS SQL Server 数据库中的某些列。我无法将该列锁定为 READ ONLY,因为对该列进行了更改。让我尽可能解释清楚。我们的 ERP 允许我通过用户的安全选项卡阻止某些字段/列。听起来很棒。但是,如果一个人使用 ODBC 或 DSN 连接,他们将能够更改数据。例如,我不希望用户能够更改客户订单表中的成本或任何财务内容,但对他更正不正确的地址或运输信息没有任何问题。如果我将表锁定为只读,那么使用 ERP 也会阻止该列。我希望我在这里说得通。谢谢!

Len*_*art 5

您可以撤销特定用户对该列的更新:

REVOKE UPDATE ON OBJECT::Employees.Salary FROM theUser;
Run Code Online (Sandbox Code Playgroud)

请参阅:https : //docs.microsoft.com/en-us/sql/t-sql/statements/revoke-object-permissions-transact-sql?view=sql-server-2017