为什么在第一次创建数据库时已经有一些用户? (SQL Server 2017,SSMS 17.9)

时间:2018-11-22 17:03:26

标签: sql-server database login smss

对于Microsoft SQL Server Management Studio,无论是执行SQL命令(例如CREATE DATABASE XYZ)还是通过GUI创建新的数据库,该数据库最终都会带有一些默认用户(请参见下图),例如dbo,当前域用户guestsys

这是SQL Server的默认行为吗?反正有控制这种行为的方法吗? (例如,不包括正在使用SSMS的计算机的当前域用户;或必须包括一些用户)

用户列表中还有另外一件奇怪的事情,可以看到tester222,它是我很久以前创建的用于测试的对象,并且该名称在Object的“ SQL Server Instance \ Security \ Logins”中不再存在资源管理器。现在怎么会出现在列表中?

Sample Database

1 个答案:

答案 0 :(得分:0)

感谢@Larnu。

基于 模型数据库创建新数据库。请参见下面的示例:

Model Database in SQL Server 2017

例如,如果要更改此模型数据库中的默认用户列表,则每个新数据库在创建时都会继承该用户列表。

从Microsoft:

https://docs.microsoft.com/en-us/sql/relational-databases/databases/model-database?view=sql-server-2017

  

模型数据库用作创建的所有数据库的模板   在SQL Server实例上。因为tempdb每次创建SQL   服务器启动后,模型数据库必须始终存在于SQL上   服务器系统。模型数据库的全部内容,包括   数据库选项,将被复制到新数据库。一些设置   模型的启动过程中还用于创建新的tempdb,因此   模型数据库必须始终存在于SQL Server系统上。