master数据库
数据库记录 SQL Server 系统的所有系统级信息。这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。此外,master 数据库还记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息。因此,如果 master 数据库不可用,则 SQL Server 无法启动。在 SQL Server 中,系统对象不再存储在 master 数据库中,而是存储在 Resource 数据库中。
不能在 master 数据库中执行下列操作:
-
添加文件或文件组。
-
更改排序规则。默认排序规则为服务器排序规则。
-
更改数据库所有者。master 归 dbo 所有。
-
创建全文目录或全文索引。
-
在数据库的系统表上创建触发器。
-
删除数据库。
-
从数据库中删除 guest 用户。
-
启用变更数据捕获。
-
参与数据库镜像。
-
删除主文件组、主数据文件或日志文件。
-
重命名数据库或主文件组。
-
将数据库设置为 OFFLINE。
-
将数据库或主文件组设置为 READ_ONLY。
model 数据库
model 数据库用作在 SQL Server 实例上创建的所有数据库的模板。因为每次启动 SQL Server 时都会创建 tempdb,所以 model数据库必须始终存在于 SQL Server 系统中。
不能在 model 数据库中执行下列操作:
-
添加文件或文件组。
-
更改排序规则。默认排序规则为服务器排序规则。
-
更改数据库所有者。model 归 dbo 所有。
-
删除数据库。
-
从数据库中删除 guest 用户。
-
启用变更数据捕获。
-
参与数据库镜像。
-
删除主文件组、主数据文件或日志文件。
-
重命名数据库或主文件组。
-
将数据库设置为 OFFLINE。
-
将数据库或主文件组设置为 READ_ONLY。
-
使用 WITH ENCRYPTION 选项创建过程、视图或触发器。加密密钥与在其中创建对象的数据库绑定在一起。在 model 数据库中创建的加密对象只能用于 model 中。
msdb 数据库
msdb 数据库由 SQL Server 代理用于计划警报和作业,也可以由其他功能(如 Service Broker 和数据库邮件)使用。
不能在 msdb 数据库中执行下列操作:
-
更改排序规则。默认排序规则为服务器排序规则。
-
删除数据库。
-
从数据库中删除 guest 用户。
-
启用变更数据捕获。
-
参与数据库镜像。
-
删除主文件组、主数据文件或日志文件。
-
重命名数据库或主文件组。
-
将数据库设置为 OFFLINE。
-
将主文件组设置为 READ_ONLY。
Resource 数据库
Resource 数据库是只读数据库,它包含了 SQL Server 中的所有系统对象。SQL Server 系统对象(例如 sys.objects)在物理上持续存在于 Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。Resource 数据库不包含用户数据或用户元数据。
tempdb 数据库
tempdb 系统数据库是一个全局资源,可供连接到 SQL Server 实例的所有用户使用,并可用于保存下列各项:
-
显式创建的临时用户对象,例如全局或局部临时表、临时存储过程、表变量或游标。
-
SQL Server 数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。
-
由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。
-
由数据修改事务为实现联机索引操作、多个活动的结果集 (MARS) 以及 AFTER 触发器等功能而生成的行版本。
不能对 tempdb 数据库执行以下操作:
-
添加文件组。
-
备份或还原数据库。
-
更改排序规则。默认排序规则为服务器排序规则。
-
更改数据库所有者。tempdb 的所有者是 dbo。
-
创建数据库快照。
-
删除数据库。
-
从数据库中删除 guest 用户。
-
启用变更数据捕获。
-
参与数据库镜像。
-
删除主文件组、主数据文件或日志文件。
-
重命名数据库或主文件组。
-
运行 DBCC CHECKALLOC。
-
运行 DBCC CHECKCATALOG。
-
将数据库设置为 OFFLINE。
-
将数据库或主文件组设置为 READ_ONLY。