【发布时间】:2009-09-16 00:59:57
【问题描述】:
是否可以阻止 SQL Server 管理员更改数据库中的用户? 这种情况是由应用程序创建的用户对数据库具有只读权限。不应允许客户的服务器管理员更改该用户和数据库的这些权限或其他设置。
【问题讨论】:
-
如果服务器管理员做不到,谁能做到?更改是否需要重新安装?
标签: sql-server-2005
是否可以阻止 SQL Server 管理员更改数据库中的用户? 这种情况是由应用程序创建的用户对数据库具有只读权限。不应允许客户的服务器管理员更改该用户和数据库的这些权限或其他设置。
【问题讨论】:
标签: sql-server-2005
不,你不能那样做。管理员是管理员是有原因的......
【讨论】:
嗯 - errrh - 不。
管理员拥有对数据库的完全访问权限。您不能阻止人们完全访问他们自己安装和拥有的数据库。
因此他们可以随意弄乱数据库结构,也可以随意删除应用程序中的关键文件。
所以我想说,您能做的最好的事情就是向您的客户指出数据库架构是您开发和测试的数据库架构,如果他们进行任何修改,您无法保证应用程序的正确性。
如果你有一些超级骗子的热门律师,你可以试探性地制定一个 EULA,让它变得非法,就像 Apple 试图将在 PC 上安装 OS-X 定为非法一样;)
【讨论】:
您能否避免向客户提供管理员帐户详细信息,并使用您提到的权限/限制创建登录?这可能是客户的“管理员”帐户。
【讨论】:
如果您使用的是 SQL Server 2008,请考虑是否可以在 alter login 命令上创建 DDL 触发器。作为管理员,他们仍然可以禁用此功能,但至少会让他们在第一次尝试时知道更改未提交以及原因。很可能,他们不会放弃触发器,因为对登录名的任何更改可能是因为他们不知道他们不应该这样做。这不是一个完美的解决方案,但它会是一个级别的保护。
【讨论】: