如何防止用户在还原时覆盖数据库?

azi*_*zim 2 sql-server

我不希望用户在某些特定数据库上恢复(覆盖)。如何禁止恢复这些数据库?

Tho*_*ger 5

如果您要问的是如何防止通过现有数据库恢复登录,请查看BOLRESTORE上的此参考资料

权限

如果要恢复的数据库不存在,则用户必须具有 CREATE DATABASE 权限才能执行 RESTORE。如果 数据库存在,则RESTORE权限默认成员 授予sysadmin和dbcreator固定服务器角色和所有者(DBO) 数据库(用于FROM DATABASE_SNAPSHOT选项,数据库始终存在)。

RESTORE 权限授予角色,其中成员信息始终可供服务器使用。因为只有在数据库可访问且未损坏时才能检查固定数据库角色成员资格,而在执行 RESTORE 时并非总是如此,所以 db_owner 固定数据库角色的成员没有 RESTORE 权限。

在您的情况下,听起来数据库存在并且用户正在对其进行恢复。在这种情况下,只需重申所需的权限,您将需要确保您的特定登录名不是 sysadmin 或 dbcreator 成员以及数据库的所有者。

归结为,如果您不希望人们能够执行某些操作,请不要授予他们执行此类操作的权限。