【问题标题】:How to disable altering SQL Server tables?如何禁用更改 SQL Server 表?
【发布时间】:2021-12-29 22:02:22
【问题描述】:

我在数据库中创建了许多 SQL Server 登录用户,我希望不允许某些用户更改所有表的表(例如添加列名、更改数据类型等)。不是特定的表格。

我们有什么办法吗?

提前致谢。

【问题讨论】:

  • 是的。有各种数据库级别的角色可以控制这一点。您是否查看过安全文档?他们目前的角色是什么?他们可以做什么?
  • 您只需将用户的角色更改为db_datawriterdb_datareader

标签: sql permissions sql-server-2016


【解决方案1】:

您可以通过为该用户分配特定角色来执行此操作。如果需要,您可以使用现有角色,也可以根据需要创建自定义角色。

在这里您可以了解database level roles。 这是create custom role的指南。

【讨论】:

  • 我们不想改变角色级别。我们想拒绝当前与其他用户具有相同角色的特定用户的 ALTER 表。
  • @VIC78 那么你必须撤销该用户所有表的 ALTER 表权限
  • 当然,我试过这个... REVOKE ALTER ON dbo.AST_Activity FROM TestUser
  • 它可以工作,但我无法使用不同的表名运行 100 行
  • 那么有什么脚本可以做的吗?
猜你喜欢
  • 2021-10-17
  • 2018-12-26
  • 2017-09-05
  • 2012-05-16
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多