2

truncate可以在用户级别(针对特定数据库/服务器)限制 SQL 命令吗?

我团队的一个成员截断了一个生产表,认为他在他的开发数据库中,我想防止这种情况再次发生(没有完全锁定他的权限)。

4

3 回答 3

4

您可以尝试将 tinyint 字段(默认为 0)添加到要保护的表中,并添加指向专用单记录表的外键约束。那应该保护你的桌子。

也就是说,你可能应该摆脱这个人。

于 2012-11-30T17:40:34.187 回答
0

据我记得撤销ALTER对表的权限应该可以解决问题(在 2005 到 2012 的所有版本中)。

于 2012-11-30T17:26:40.150 回答
0

一个人需要对表进行 DDL 权限才能执行 TRUNCATE,因为它是未记录的操作。即使一个人有数据写入器(或插入/更新/删除),但缺少 ALTER 或 DDL_ADMIN,他们也无法截断表。

于 2012-11-30T17:37:55.430 回答