【问题标题】:SQL Server make Column data undeletableSQL Server 使列数据不可删除
【发布时间】:2018-11-01 05:38:13
【问题描述】:

我正在使用 SQL Server 2008 R2。我想让列数据不可删除。是否可以在不使用触发器的情况下使数据不可删除?如果是,请告诉我。

【问题讨论】:

  • 否;总会有人可以删除这些数据。总会有人可以删除表...系统管理员登录可以做任何事情...但是,您可以REVOKE DELETE ON thatTable FROM aSpecificUser; 简而言之,您需要使用用户权限来控制它。
  • 我认为您需要提供更多信息 - 表格的定义,以及您希望该行的其余部分发生的情况(或者您的意思是整行应该是不可删除的,如果一个特定的列有一个特定的值?)我觉得这就像在您的应用程序代码中实现的最好的东西,或者这不是一个可行的选择?
  • 我也想知道约束是否可以帮助您解决这个问题。

标签: sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2008r2-express


【解决方案1】:

您可以在列级别上GRANT/REVOKE

REVOKE UPDATE ON elbat (nmuloc) FROM <role/user>;

像这样,相应的角色/用户不能再更新elbat 中的nmuloc。 (并将其设置为NULL,我认为这就是您删除“列数据”的意思。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多