我希望使用用户模拟来设置一个具有修改 DDL 权限的用户,只有当我需要部署 DDL 更改时,我才会模拟该用户。这样我就可以使用我的 Windows 集成帐户根据需要查询数据,但不能修改数据库,除非我明确地模拟其他用户。
根据有关模拟的 MSDN 文章,如果您是系统管理员,则只能执行模拟。
所以挑战是,如果我的默认登录名,我们称之为 LoginAaron,是数据库的系统管理员,如何拒绝我自己的 DDL 写入权限,这样我就无法在不显式模拟另一个具有 ddl_admin 角色的用户的情况下执行 DDL(我们将调用用户 UserDdlDeploy)?
还是有另一种优雅的方式来实现这一点?
这与其说是安全程序,不如说是安全/预防程序。