truncate
可以在用户级别(针对特定数据库/服务器)限制 SQL 命令吗?
我团队的一个成员截断了一个生产表,认为他在他的开发数据库中,我想防止这种情况再次发生(没有完全锁定他的权限)。
truncate
可以在用户级别(针对特定数据库/服务器)限制 SQL 命令吗?
我团队的一个成员截断了一个生产表,认为他在他的开发数据库中,我想防止这种情况再次发生(没有完全锁定他的权限)。
您可以尝试将 tinyint 字段(默认为 0)添加到要保护的表中,并添加指向专用单记录表的外键约束。那应该保护你的桌子。
也就是说,你可能应该摆脱这个人。
据我记得撤销ALTER
对表的权限应该可以解决问题(在 2005 到 2012 的所有版本中)。
一个人需要对表进行 DDL 权限才能执行 TRUNCATE,因为它是未记录的操作。即使一个人有数据写入器(或插入/更新/删除),但缺少 ALTER 或 DDL_ADMIN,他们也无法截断表。