SQL SERVER系统数据库


Master

  • 这个数据库包括了诸如系统登录、配置设置、已连接的SERVER等信息,以及用于该实体的其他系统和用户数据库的一般信息。主数据库还存有扩展存储过程,它能够访问外部进程,从而让你能够与磁盘子系统和系统API调用等特性交互。

Model

  • Model是一个用来在实体上创建新用户数据库的模版数据库。你可以把任何存储过程、视图、用户等放在模型数据库里,这样在创建新数据库的时候,新数据库就会包含你放在模型数据库里的所有对象了。因此新建的数据库最小应该有model数据库那么大。我们在创建数据库的时候会指定数据库的大小,通常会大于model数据库的大小,这是因为里面填充了空的page。

Tempdb

  • tempdb存有临时对象,例如全局和本地临时表格和存储过程。 这个数据库在SQLSERVER每次重启的时候都会被重新创建,而其中包含的对象是依据模型数据库里定义的对象被创建的。除了这些对象,tempdb还存有其他对象,例如表格变量、来自表格值函数的结果集,以及临时表格变量。

Distribution

  • 当你的SQLSERVER实体被配置为复制分发SERVER时,这个数据库就会被添加到你的系统里。在默认情况下,数据库的名字就是distribution,但是你可以更改它的名字。这个数据库用来保存历史和快照、合并和事务复制等的元数据。

Msdb

  • Msdb数据库用来保存于数据库备份、SQL Agent信息、DTS程序包、SQLSERVER任务等信息,以及诸如日志转移这样的复制信息。



SQL SERVER系统表

下列这些系统表都是存放在master数据库下的Views中,而不是在Tables中。

系统表

数据库

功能

sysaltfiles

主数据库

保存数据库的文件

syscharsets

主数据库

字符集与排序顺序

sysconfigures

主数据库

配置

syscurconfigs

主数据库

当前配置选项

sysdatabases

主数据库

服务器中的数据库

syslanguages

主数据库

语言

syslogins

主数据库

登陆帐号信息

sysoledbusers

主数据库

链接服务器登陆信息

sysprocesses

主数据库

进程

sysremotelogins

主数据库

远程登录帐号

syscolumns

每个数据库


sysconstrains

每个数据库

限制

sysfilegroups

每个数据库

文件组

sysfiles

每个数据库

文件

sysforeignkeys

每个数据库

外部关键字

sysindexs

每个数据库

索引

sysmenbers

每个数据库

角色成员

sysobjects

每个数据库

所有数据库对象

syspermissions

每个数据库

权限

systypes

每个数据库

用户定义数据类型

sysusers

每个数据库

用户




SQL SERVER系统表详细说明

sysaltfiles

在特殊情况下,包含与数据库中的文件相对应的行。该表存储在 master 数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL

syscharsets

每个字符集在表中各占一行,表中还包含定义供 Microsoft? SQLServer? 使用的排序次序。排序次序中的一个在 sysconfigures 中标记为默认排序次序,该次序是实际使用的唯一次序。


SQL Server数据库模型是什么 sql server的数据模型_数据库_02

sysconfigures

用户设置的每个配置选项在表中各占一行。 sysconfigures 包含最近启动 Microsoft? SQL Server? 前定义的配置选项,还包含最近启动后设置的所有动态配置选项。该表只位于 master 数据库中。


SQL Server数据库模型是什么 sql server的数据模型_数据库_03

syscurconfigs

每个当前配置选项各占一项。另外,该表还包含四个描述配置结构的项。 syscurconfigs 在由用户查询时动态生成。


SQL Server数据库模型是什么 sql server的数据模型_SQL Server数据库模型是什么_04

sysdatabases

Microsoft SQL Server上的每个数据库在表中占一行。最初安装 SQLServer 时, sysdatabases 包含 master 、 model 、 msdb 、 mssqlweb和 tempdb 数据库的项。该表只存储在 master 数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL_05

syslanguages

出现在 Microsoft SQL Server中的每种语言在表中各占一行。该表只存储在 master 数据库中。

SQL Server数据库模型是什么 sql server的数据模型_SQL Server数据库模型是什么_06

syslogins

每个登录帐户在表中占一行。


SQL Server数据库模型是什么 sql server的数据模型_SQL_07

sysoledbusers

每个指定的链接服务器的用户和密码映射在表中占一行。该表存储在 master 数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL SERVER_08

sysprocesses

sysprocesses 表中保存关于运行在 Microsoft? SQL Server? 上的进程的信息。这些进程可以是客户端进程或系统进程。 sysprocesses 只存储在master 数据库中。

SQL Server数据库模型是什么 sql server的数据模型_SQL SERVER_09

syscolumns

每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL SERVER_10

sysconstraints

包含约束映射,映射到拥有该约束的对象。该系统目录存储在每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL_11

sysfilegroups

数据库中的每个文件组在表中占一行。该表存储在每个数据库中。在该表中至少有一项用于主文件组。


SQL Server数据库模型是什么 sql server的数据模型_数据库_12

sysfiles

数据库中的每个文件在表中占一行。该系统表是虚拟表,不能直接更新或修改。


SQL Server数据库模型是什么 sql server的数据模型_SQL SERVER_13

sysforeignkeys

包含关于表定义中的 FOREIGNKEY 约束的信息。该表存储在每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL Server数据库模型是什么_14

sysindexes

数据库中的每个索引和表在表中各占一行。该表存储在每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_Server_15

sysmembers

每个数据库角色成员在表中占一行。该表存储在每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_数据库_16

sysobjects

在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。


SQL Server数据库模型是什么 sql server的数据模型_SQL_17

syspermissions

包含有关对数据库内的用户、组和角色授予和拒绝的权限的信息。该表存储在每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_Server_18

systypes

对于每种系统提供数据类型和用户定义数据类型,均包含一行信息。该表存储在每个数据库中。


SQL Server数据库模型是什么 sql server的数据模型_SQL Server数据库模型是什么_19

sysusers

数据库中每个Microsoft Windows 用户、Windows 组、Microsoft SQL Server 用户或 SQL Server 角色在表中占一行。


SQL Server数据库模型是什么 sql server的数据模型_SQL SERVER_20




服务器级别角色

为帮助您管理服务器上的权限,SQL Server 提供了若干角色。这些角色是用于对其他主体进行分组的安全主体。 服务器级角色的权限作用域为服务器范围。


SQL Server数据库模型是什么 sql server的数据模型_数据库_21

服务器级别角色

为便于管理数据库中的权限,SQL Server 提供了若干“角色”,这些角色是用于对其他主体进行分组的安全主体。数据库级角色的权限作用域为数据库范围。


SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”。您可以向数据库级角色中添加任何数据库帐户和其他 SQL Server 角色。 固定数据库角色的每个成员都可向同一个角色添加其他登录名。请不要将灵活数据库角色添加为固定角色的成员。 这会导致意外的权限升级。


固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。 db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份。 但是,只有db_owner 数据库角色的成员能够向 db_owner 固定数据库角色中添加成员。 msdb 数据库中还有一些特殊用途的固定数据库角色。


SQL Server数据库模型是什么 sql server的数据模型_Server_22

msdb 角色

msdb 数据库中包含下表显示的特殊用途的角色。


SQL Server数据库模型是什么 sql server的数据模型_SQL Server数据库模型是什么_23

db_ssisadmin 角色和 dc_admin 角色的成员可以将其特权提升为 sysadmin。 由于这些角色可以修改 Integration Services 包,而 SQL Server 使用 SQL Server 代理的 sysadmin 安全上下文可以执行 Integration Services 包,因此可以实现特权提升。 若要防止在运行维护计划、数据收集组和其他 Integration Services 包时提升特权,请将运行包的 SQL Server 代理作业配置为具有有限特权的代理帐户,或仅将 sysadmin 成员添加到 db_ssisadmin 和 dc_admin 角色。