900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 2.SQL SERVER笔记——SQL SERVER系统概念

2.SQL SERVER笔记——SQL SERVER系统概念

时间:2024-03-24 08:34:06

相关推荐

2.SQL SERVER笔记——SQL SERVER系统概念

2.SQL SERVER笔记——SQL SERVER系统概念

系统数据库

数据库管理员(DBA)的一项基本的技能是对SQL数据库引擎的系统数据库的深刻理解。数据库开发人员了解SQLSERVER自带的系统数据库也是十分有用的。下面就列出了其中的一些系统数据库。(注:如果你决定研究一下这些系统数据库,那么你需要有一个开发数据库。)

Master

Master数据库保存有放在SQLSERVER实体上的所有数据库,它还是将引擎固定起来的粘合剂。如果不使用主数据库,SQLSERVER就不能启动,所以你必须要小心地管理好这个数据库。对这个数据库进行常规备份是十分必要的。建议在数据库发生变更的时候备份master数据库。

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

如果不幸碰到系统崩溃而必须恢复主数据库的情况,你可以参看MCSE/MCDBA StevenWarren在TechRepublic上发表的文章。这篇文章讲得十分透彻,它解释了恢复这一重要数据库所需要的一些特殊步骤。

Model

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

Tempdb

正如其名字所提示的,tempdb存有临时对象,例如全局和本地临时表格和存储过程。这个数据库在SQLSERVER每次重启的时候都会被重新创建,而其中包含的对象是依据模型数据库里定义的对象被创建的。除了这些对象,tempdb还存有其他对象,例如表格变量、来自表格值函数的结果集,以及临时表格变量。由于tempdb会保留SQLSERVER实体上所有数据库的这些对象类型,所以对数据库进行优化配置是非常重要的。

在SQL Server 里,tempdb数据库还有一项额外的任务;它还被用作一些特性的版本库,例如新的快照隔离层和在线索引操作等。关于新的隔离层的简要说明,请参考我关于SQLServer 高级特性的文章。

Distribution

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

Msdb

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

sql server系统表详细说明

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

sysaltfiles

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

syscharsets

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

sysconfigures

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

syscurconfigs

每个当前配置选项各占一项。另外,该表还包含四个描述配置结构的项。syscurconfigs在由用户查询时动态生成。有关更多信息,请参见sysconfigures。

sysdatabases

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

syslanguages

出现在 Microsoft? SQL Server? 中的每种语言在表中各占一行。虽然美国英语不在syslanguages内,但该表始终可由 SQL Server 使用。该表只存储在master数据库中。

安装了 SQLServer 提供的三十三种语言。下面是语言列表。

syslogins

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

sysoledbusers

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

sysprocesses

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

sysremotelogins

每个允许调用Microsoft? SQL Server? 上的远程存储过程的远程用户占一行。

syscolumns

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

sysconstraints

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

sysfilegroups

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

sysfiles

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

sysforeignkeys

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

sysindexes

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

sysmembers

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

sysobjects

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

syspermissions

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

systypes

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

这些是系统提供的数据类型及其 ID 号。

sysusers

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

服务器级别角色

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

提供固定服务器角色是为了方便使用和向后兼容。应尽可能分配更具体的权限。

SQL Server 提供了九种固定服务器角色。无法更改授予固定服务器角色的权限。从 SQL Server 开始,您可以创建用户定义的服务器角色,并将服务器级权限添加到用户定义的服务器角色。

您可以将服务器级主体(SQL Server 登录名、Windows 帐户和 Windows 组)添加到服务器级角色。固定服务器角色的每个成员都可以将其他登录名添加到该同一角色。用户定义的服务器角色的成员则无法将其他服务器主体添加到角色。

下表显示了服务器级的固定角色及其权限。

processadmin

processadmin 固定服务器角色的成员可以终止在 SQL Server 实例中运行的进程。

setupadmin

setupadmin 固定服务器角色的成员可以添加和删除链接服务器。

bulkadmin

bulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。

diskadmin

diskadmin 固定服务器角色用于管理磁盘文件。

dbcreator

dbcreator 固定服务器角色的成员可以创建、更改、删除和还原任何数据库。

public

每个 SQL Server 登录名均属于 public 服务器角色。如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该用户将继承授予该对象的 public 角色的权限。当您希望该对象对所有用户可用时,只需对任何对象分配 public 权限即可。您无法更改 public 中的成员关系。

数据库级别的角色

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

SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”。

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

您可以向数据库级角色中添加任何数据库帐户和其他 SQL Server 角色。固定数据库角色的每个成员都可向同一个角色添加其他登录名。

下表显示了固定数据库级角色及其能够执行的操作。所有数据库中都有这些角色。

msdb 角色

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

常用命令

查看表结构

sp_help 'student'

可以出现表,比oracle中desc student还要信息多。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。