Vac*_*ano 5 sql-server-2008 sql-server sql-server-2008-r2
我每周两次使用 Visual Studio DB 项目重新创建我的开发数据库。
今天,我将我的权限固定为基于 Active Directory 组,而不是授予个人权限。
在我重新运行我的构建后,我注意到一个域/Windows 使用仍在那里。我搜索了整个数据库项目,但在任何地方都找不到该用户。
所以为了测试,我创建了一个不同的数据库(即 MyDummyDb)。果然用户也被添加到该数据库中。
该用户甚至没有有效的登录名(我也将登录名更改为基于 AD 组)。
所以我必须假设有一个服务器级别的设置来控制哪些用户被自动添加到新数据库中。
这是正确的吗?有谁知道这个设置在哪里?
您在model
数据库中定义了一个用户。很可能有人误点击了一次并model
意外地创建了虚假用户。model
是在实例上创建的任何数据库的模板,因此如果那里存在用户,它将存在于您创建的所有数据库中。
运行下面的脚本(在开发实例上!),您将看到在模型中创建的用户被添加到 TestForModelUser 数据库中。
USE [master]
GO
CREATE LOGIN [ModelUser] WITH PASSWORD=N'', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [model]
GO
CREATE USER [ModelUser] FOR LOGIN [ModelUser]
GO
CREATE DATABASE TestForModelUser
GO
USE [TestForModelUser]
GO
SELECT * FROM sys.sysusers WHERE [name] = 'ModelUser'
GO
USE [master]
GO
DROP DATABASE [TestForModelUser]
GO
USE [model]
GO
DROP USER [ModelUser]
GO
USE [master]
GO
DROP LOGIN [ModelUser]
GO
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1538 次 |
最近记录: |