Nei*_*ell 7 database sql-server authorization
我正在为开发人员面试设置一台笔记本电脑,准备进行编码测试.我想为每个候选人创建一个数据库,但是在面试本身之前.我的准备是这样的:
这样当我作为每个候选人登录到Windows时,如果他们打开SSMS,他们只能在对象资源管理器中看到自己的数据库.
我想这样做,因为在两次采访之间通常没有足够的时间来备份/分离前一个候选人的数据库并创建下一个候选人的数据库(机器很慢,所以再次注销等等需要时间).
这是可能的,如果是的话,怎么样?
提前谢谢了.
看来SQL Server 2005+中有一个选项可以满足您的需求.听起来好像您的要求是用户在对象资源管理器中看不到其他数据库.
如何在SQL Server中隐藏数据库突出显示该VIEW ANY DATABASE权限.在需要向Windows用户X以外的所有用户隐藏数据库X的情况下,它可能很有用.
这个MSDN论坛帖子(参见最底层的帖子)表明,将视图数据库拒绝给用户并提供授权的组合是一种可能的解决方案.
我在SQL Server 2008计算机上复制了这个,但在此快速测试中使用了SQL Server身份验证.它的工作原理如下:所有数据库都从登录中隐藏,保存下面指定的数据库.
USE <customersdatabase>
ALTER AUTHORIZATION ON DATABASE::<customerdatabase> to <customerlogin>
USE MASTER
DENY VIEW ANY DATABASE TO <customerlogin>
Run Code Online (Sandbox Code Playgroud)