第 六 章 SQL Server 基础及使用 6.1 SQL Server 概述 6.2 安装与测试 6.4 数据库及数据库对象操作 6.5 安全管理 6.6 数据传输 6.7 数据库的备份与恢复
6.1 SQL Server 概述 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本 SQL Server近年来不断更新版本,1996年Microsoft 推出了SQL Server 6.5版本 1998年SQL Server 7.0版本和用户见面 SQL Server 2000是Microsoft公司于2000年推出的最新版本。
6.1 SQL Server 概述 1. SQL Server 特点 真正的客户机/服务器体系结构。 图形化用户界面,使系统管理和数据库管理更加直观、简单。 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。 具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。 对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。 SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。
6.1 SQL Server 概述 2. SQL Server 2000 提供的服务 SQL Server 直接管理和维护数据库 SQL Server Agent(代理服务) 能够根据系统管理员预先设定好的计划自动执行相应的功能。 Distributed Transaction Coordinator(分布式事务处理协调器DTC) DTC是一个事务管理器,在DTC支持下,客户可以在一个事务中访问不同服务器上的数据库。 Microsoft Search(全文检索服务) 能够对字符数据进行检索。
6.2 SQL Server 2000安装与测试 1.SQL Server 2000的版本 企业版支持SQL Server 2000中的全部功能,适合于作为生产数据库服务器使用;它必须运行于安装Windows NT Server 4.0或者Windows 2000 Advanced Server以及更高版本的操作系统下。 标准版支持许多SQL Server 2000功能,适合于作为小工作组或部门的数据库服务器使用;它必须运行于安装Windows NT Server 4.0或者Windows 2000 Advanced Server以及更高版本的操作系统下。 个人版适用于在移动环境中作业的用户,并且所运行的应用程序需要本地数据存储。它可在多种操作系统下运行,如可运行于Windows 9x, Windows NT 4.0或Windows 2000的服务器版或工作站版的操作系统下。 开发版支持企业版的全部功能,但只是将开发版作为开发和测试系统使用,不能作为生产服务器使用;运行于上述Windows 9x以外的所有操作系统下。
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 浏览安装/升级帮助:浏览安装和升级的帮助信息; 浏览发布说明:浏览授权信息; 浏览我们的Web站点:访问SQL Server 站点。 图6-1 安装程序的启动界面
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 安装数据库服务器:安装数据库服务器组件; 安装Analysis Service:安装分析服务组件。Analysis Services 包含联机分析处理 (OLAP) 和数据挖掘; 安装English Query:安装英语查询组件。 图6-2 选择安装的组件
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 图6-3 选择要安装的计算机
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 对现有SQL Server实例进行升级、删除或添加组件:对计算机上已安装的SQL Server以前的版本进行升级,或者对已安装好的SQL Server 2000的组件进行添加或删除; 高级选项:其他的安装功能。 图6-4 选择安装选项
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 图6-5 设置用户信息
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) “连接”:表示只安装客户端Microsoft的数据访问组件和网库,该选项只提供连接工具,不提供客户端工具或其他组件。 图6-6 定义安装类型
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) SQL Server 2000支持多实例,即允许在一台服务器上同时运行多个SQL Server系统,这些系统运行的版本可以是SQL Server 2000,也可以是比它低的版本。 不同的SQL Server系统是用实例名来标识的。 图6-7 设置数据库服务器的实例名称
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 图6-8 设置安装方式
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 图6-9 设置服务帐户 本地系统帐户:不需要设置密码,也没有 Windows 2000 的网络访问权限。 域用户帐户:使用 Windows 身份验证设置并连接 SQL Server。默认情况下,将显示当前登录到计算机的域用户帐户的帐户信息。一般选择使用Win2000域用户帐户作为启动服务的帐户,这样便于与其他服务器的连接。 用户名:输入系统管理员名字, 密码:输入Win2000系统管理员的密码。 图6-9 设置服务帐户
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) Windows 身份验证模式: 用户通过Windows用户账号连接时,SQL Server 使用Windows操作系统中的信息验证用户名和密码。 混合模式(Windows 身份验证和 SQL Server 身份验证): 允许用户使用Windows操作系统身份验证或SQL Server身份验证进行连接。如果选择“混合模式”,则应该输入SQL Server 2000的系统管理员密码。 图6-10 选择身份验证模式
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 在SQL Server 2000 中有两组排序规则:Windows 排序规则和 SQL 排序规则。 Windows 排序规则:是为SQL Server定义的排序规则,用以支持Windows区域设置。 SQL 排序规则:是为兼容SQL Server早期版本所指定的排序规则。 图6-11 设置排序规则
6.2 SQL Server 2000安装与测试 2.SQL Server 2000的安装 (以企业版为例) 图6-12 选择网络库
6.2 SQL Server 2000安装与测试 3.SQL Server 2000的测试 安装完SQL Server 2000之后,应当验证一下安装的正确性,并了解一下都安装了哪些组件或工具。SQL Server 2000提供的各种工具均包含在“Microsoft SQL Server”程序组中。 测试安装是否成功可通过“服务管理器”工具,启动SQL Server服务来实现。 运行 “Microsoft SQL Server”程序组下的“服务管理器”弹出“SQL Server服务管理器”窗口 设置启动SQL Server服务的方式有两种:手工启动和自动启动。
6.3 SQL Server 2000常用工具简介 1.企业管理器(Enterprise Manager) SQL Server企业管理器是SQL Server 2000 的主要管理工具,它提供了一个遵从 Microsoft 管理控制台 (MMC) 的用户界面。 在企业管理器中可以完成几乎所有的管理工作。如:管理登录账号、数据库用户和权限,创建和管理数据库,创建和管理表、视图、存储过程和用户自己定义的数据类型等。 企业管理器界面
6.3 SQL Server 2000常用工具简介 2.查询分析器(Query Analyaer) SQL查询分析器(Query Analyaer)是一个图形化的查询工具,用于输入和执行Transact-SQL语句,并且迅速查看这些语句的结果,以分析和处理数据库中的数据。使用这个工具,用户可以交互地设计和测试Transact-SQL语句、批处理和脚本。 SQL查询分析器
6.3 SQL Server 2000常用工具简介 3.服务管理器 (Service Manager) 服务管理器界面
6.3 SQL Server 2000常用工具简介 4 分布式事务处理协调器(DTC) 用于提供和管理不同服务器之间的分布式事务处理,这些服务器必须是基于Windows NT或Windows 9x/2000系列操作系统的服务器。 5 性能监视器(Performance Monitor) 它将Windows NT操作系统的性能监视器和SQL Server集成起来,使用它可以查看和统计SQL Server系统的运行情况,查找影响系统性能的主要因素,从而为改进和优化系统、提高系统性能提供依据。
6.3 SQL Server 2000常用工具简介 6 导入和导出数据(Imput and Export Data) 导入和导出数据采用DTC 导入/导出向导来完成。此向导包含了所有的DTC(Data Transformation Services)工具,提供了在OLE DB数据源之间复制数据的最简捷的方法。 7 SQL Server 分析器(Profiler) 是一个图形化的管理工具,用于监督、记录和检查SQL Server 数据库的使用情况。对系统管理员来说,它是一个连续实时地捕获用户活动情况的间谍。
6.3 SQL Server 2000常用工具简介 8 服务器网络实用工具(Server Network Utility) 用来配置服务器端网络连接和设置相关参数等。 9 客户端网络实用工具(Client Network Utility) 用来配置客户端的网络连接、管理和测定客户端的网络库等。 10 联机帮助文档(Books Online) SQL Server 2000提供了大量的联机文档,它具有索引和全文搜索能力,可根据关键词来快速查找用户所需信息。
6.4 数据库及数据库对象操作 一、数据库的创建与管理 1.SQL Server数据库的构成 数据文件用于存放数据库数据。 日志文件用于存放对数据库数据的操作记录。 数据文件包括:主数据文件(.mdf)和辅助数据文件(.ndf )。每个数据库只能包含一个主数据文件。辅助数据文件可以同主数据文件存放在相同的位置,也可以存放在不同的地方。 日志文件的扩展名为.ldf,它包含用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。 数据文件和日志文件的默认存放位置为:C:\Program Files\Microsoft SQL Server\MSSQL\Data文件夹。
6.4 数据库及数据库对象操作 在SQL Server 2000中,数据的存储单位是页(Page)。一页是一块8KB的连续磁盘空间,页是存储数据的最小单位。在SQL Server中,不允许表中的一行数据存储在不同的数据页上,即行不能跨页存储。 在定义数据库的数据文件和日志文件时,可以指定如下属性: 文件名及其位置。每个数据库的数据文件和日志文件都具有一个逻辑名称以及文件的物理存放位置。 文件大小。可以指定每个数据文件和日志文件的大小,以MB为单位。 增长方式。如果需要的话,可以指定文件是否自动增长,该选项的默认配置为自动增长 最大大小。指定文件增长的最大大小。默认是大小无限制。
6.4 数据库及数据库对象操作 2. 数据库的创建 使用企业管理器(Enterprise Manager)创建数据库 使用Transact-SQL语言创建数据库
6.4 数据库及数据库对象操作 使用企业管理器创建数据库 (1)如果SQL Server服务还没有启动,应先启动SQL Server服务,然后启动企业管理器。 (2)在控制台上依次单击“Microsoft SQL Servers”和“SQL Server组”左边的加号,然后单击要创建数据库的服务器左边的加号图标,展开树形目录。 (3)右击“数据库”,然后单击“新建数据库”命令。就会出现如图所示的对话框。
6.4 数据库及数据库对象操作 (4)在常规(General)页框中,要求用户输入数据库名称以及排序 规则名称。
6.4 数据库及数据库对象操作 (5)在数据文件页框用来输入数据库文件的逻辑名称、存储位置、初始容量大小和所属文件组名称,
6.4 数据库及数据库对象操作 (6)点击事务日志(Transaction Log)页框,该页框用来设置事务日志文件信息,
6.4 数据库及数据库对象操作 使用Transact-SQL语言创建数据库 语法:CREATE DATABASE 数据库名 [ON ] [ LOG ON { <文件格式> [ , … n ] } ] 注: <文件格式> ::= ( [ NAME = 逻辑文件名, ] FILENAME = ‘操作系统下的物理路径和文件名’ [, SIZE = 文件初始大小 ] [, MAXSIZE = 文件最大大小 | UNLIMITED ] [, FILEGROWTH = 增量值 ] ) [ , … n]
6.4 数据库及数据库对象操作 各个参数的含义为: ON关键字:表示数据库是根据后面的参数来创建的; LOG ON 子句:用于指定该数据库的事务日志文件; NAME:用于指定数据库文件的逻辑文件名; FILENAME:用于指定数据库文件的存放位置及在磁盘上的文件名; SIZE:用于指定数据库文件的初始大小,单位为MB或KB,默认为MB; MAXSIZE:用于指定数据库文件的最大大小,单位为MB或KB,默认为MB。省略此项表示最大大小无限制; FILEGROWTH:用于指定数据库文件的增加量,可以加上MB或KB或%,默认为MB。省略此项表示不自动增长。
CREATE DATABASE 学生管理数据库 6.4 数据库及数据库对象操作 例1:用CREATE DATABASE语句创建一个数据库,此数据库的名字为“学生管理数据库”,其他选项均采用默认设置。 CREATE DATABASE 学生管理数据库 例2:创建一个数据库,数据库名称为:“人事信息数据库”,此数据库包含一个数据文件和一个事务日志文件。数据文件只有主数据文件,其逻辑文件名为“人事信息数据库”,其物理文件名为“人事信息数据库.mdf”,存放位置在默认目录下,其初始大小为10MB,最大大小为30MB,自动增长时的递增量为5MB。事务日志文件的逻辑文件名为“人事信息日志”,物理文件名为“人事信息日志.ldf”,也存放在默认目录下,初始大小为3MB,最大大小为12MB,自动增长时的递增量为2MB。
6.4 数据库及数据库对象操作 CREATE DATABASE 人事信息数据库 ON ( NAME =人事信息数据库, FILENAME = 'C:\program files\Microsoft SQL Server\Mssql\Data\人事信息数据库.mdf ', SIZE = 10, MAXSIZE = 30, FILEGROWTH = 5 ) LOG ON ( NAME =人事信息日志, FILENAME = 'C:\program files\Microsoft SQL Server\Mssql\Data\人事信息日志.ldf ', SIZE = 3, MAXSIZE = 12, FILEGROWTH = 2 )
6.4 数据库及数据库对象操作 3.删除数据库 删除一个数据库,也就删除了该数据库的全部对象,从而将其所占的磁盘空间全部释放掉。 删除数据库的方法: 使用企业管理器删除数据库 使用Transact-SQL语句删除数据库
6.4 数据库及数据库对象操作 使用企业管理器删除数据库 (1)启动企业管理器,并在“控制台”目录下单击“数据库”节点。 (2)选中要删除的数据库,然后选择如下操作之一: 从“操作”菜单中选择“删除”命令。 在工具栏上单击“删除”按钮。 右击待删除的数据库,在弹出式菜单中选择“删除”命令。
6.4 数据库及数据库对象操作 例:用SQL语句删除Test1和Test2数据库: 使用Transact-SQL语句删除数据库 语法格式为:DROP DATABASE 数据库名 [ , … n ] 注意被删除的数据库不能是当前正在使用的数据库。 使用数据库删除语句可以一次删除多个数据库。 例:用SQL语句删除Test1和Test2数据库: DROP DATABASE Test1, Test2
6.4 数据库及数据库对象操作 4. 修改数据库 使用企业管理器修改数据库 使用Transact-SQL语句修改数据库(ALTER DATABASE)
6.4 数据库及数据库对象操作 使用企业管理器修改数据库 (1)启动企业管理器,在“控制台”目录中展开“数据库”。 (2)选中要设置或要修改的数据库,选择下列操作之一: 从“操作”菜单上选“属性”命令。 在工具栏上单击“属性”按钮。 在选中的数据库上单击鼠标右键,选“属性”。 (3)在弹出的对话框中选择“数据文件”标签。 (4)在对话框中可以实现扩大已有文件和添加新文件的操作。 (5)全部完成后,单击“确定”关闭此对话框,保存所做的修改。
6.4 数据库及数据库对象操作 二、基本表的创建与管理 1. 表的创建 用户创建数据库后,在该数据库中自动包含了一些表、视图、存储过程以及其它对象,这些对象是系统从模板数据库中自动恢复过来的,主要用于管理用户的数据库。在这些表中存放的是系统的信息,用户想存放自己的数据,必须创建自己的数据库表。 表是数据库中非常重要的对象。创建表就是定义表的列的结构:包括列的名称、数据类型、长度、约束等。 创建基本表的方法: 使用企业管理器图形化地创建表, 使用SQL语句在查询分析器中创建表。
6.4 数据库及数据库对象操作 使用企业管理器创建表 (1)启动企业管理器,并在“控制台”窗格中展开“学生管理数据库”,右击“表”节点,在弹出的菜单中选择“新建表”;或单击“表”节点,然后在细目窗格里右击鼠标,在弹出的菜单中选择“新建表”。 (2) 在表设计器窗口中定义表的结构 指定字段的长度或精度。对于char类型,要在“长度”列中输入一个数字,对于decimal和numeric类型,还应在窗口下边的“精度”部分输入p(数字位数)的值,在“小数位数”部分输入q的值(小数位数)。
6.4 数据库及数据库对象操作 使用企业管理器创建表 (3)定义表的主码。选中要定义主码的列,然后单击“设置主键”按钮,设置好主码后,会在列名的左边出现一把钥匙,标志主码已经创建成功。 (4)单击“保存” 按钮保存表的定义,在弹出的“选择名称”窗口中 输入表的名称(Student),单击“确定”创建表。
6.4 数据库及数据库对象操作 2. 表的约束定义 定义外码约束 (1)在要设置外码约束的表上右击鼠标,在弹出的菜单中选“设计表” 。 (2) 单击工具栏上的“管理关系” 按钮。 (3)单击“新建”按钮,在“主键表”下拉列表框中选择外键引用的列所在的表(主表),并在“主键表”下边的下拉列表框中选择主表中的外键引用列。然后在“外键表”下拉列表框中选择外键所在的表(子表),并在“外键表”下边的下拉列表框中选择子表中的外码列。 (3)在“关系名”文本框中可以输入外码约束的名字,也可以采用系统提供的默认名称。
6.4 数据库及数据库对象操作 2. 表的约束定义 定义UNIQUE约束(以为学生表的sname列添加UNIQUE约束为例)。 单击工具栏上的“管理索引/键”按钮。 单击“新建”按钮,然后在“列名”下拉列表框中选择要创建惟一值约束的列(这里是“sname”),然后选中下边的“创建UNIQUE”成组框,并在这个组中选中“约束”单选按钮。 单击“关闭”按钮关闭此窗口,返回到设计表窗口,在此窗口中单击“保存”按钮,然后关闭此窗口。
6.4 数据库及数据库对象操作 2. 表的约束定义 定义DEFFAULT约束 例:将学生表的Sdept列的默认值设置为计算机 企业管理器的控制台中展开数据库,在要设置DEFAULT约束的表上右击鼠标,在弹出的菜单中选“设计表” 。 选中要设置DEFAULT约束的列,然后在对话框下边的“默认值”中输入本列的DEFAULT约束值。 单击“保存”按钮,保存所作的修改,然后关闭此窗口。
6.4 数据库及数据库对象操作 2. 表的约束定义 定义CHECK约束 例:将学生表的学生的年龄限制在大于15岁 单击“管理约束”按钮。 单击“新建”按钮,并可以在“约束名”文本框中输入约束的名字,然后在“约束表达式”框中输入约束的表达式。 单击“关闭”按钮,回到前一个窗口,单击“保存”按钮,保存所作的修改,然后关闭窗口。
6.4 数据库及数据库对象操作 3. 修改表结构 修改表结构包括:为表添加字段、修改字段的定义、定义主码、外码等。 修改表结构可以在企业管理器中图形化地实现,也可以在查询分析器中通过语句实现。 在企业管理器中修改表结构的步骤为: 在企业管理器中,展开包含要修改表结构的数据库,在“表”节点上单击鼠标,然后在右边的窗格中,在要修改结构的表名上单击鼠标右键,并在弹出的菜单中选择“设计表”。 在此窗口中进行表结构的修改。
6.4 数据库及数据库对象操作 4. 删除表 删除表时会将与表有关的所有对象一起删掉。 删除表可以在企业管理器中图形化地实现,也可以在查询分析器中通过语句实现。 在企业管理器中,展开包含要删除表的数据库,在“表”节点上单击鼠标,然后在右边的细目窗格中,在要删除的表名上单击鼠标右键,并在弹出的菜单中选择“Delete”。单击“全部除去”按钮,将删除表及与表有关的所有对象。
6.4 数据库及数据库对象操作 三、存储过程的创建与管理 1. 存储过程的概念 存储过程(Stored Procedure)是一组为了完成特定功能的T-SQL 语句的集合,经编译后存储在SQL Server服务器端数据库中。 用户可以通过指定的存储过程的名字来调用存储过程,完 成特定的操作。 在SQL Server中存储过程分为两类:即系统提供的存储过 程和用户自定义的存储过程。
6.4 数据库及数据库对象操作 系统存储过程:是在SQL Server安装成功后,就已经存储在系统master数据库中,这些存储过程是以sp_为前缀命名。它们主要是从系统表中获取信息,系统管理员可以通过简单调用系统存储过程而完成复杂的SQL Server管理工作,除此以外,用户还可以通过系统存储过程完成SQL Server中的许多管理性或信息性的操作。 用户自定义的存储过程: 由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程
6.4 数据库及数据库对象操作 2 .创建存储过程 利用SQL Server 企业管理器创建存储过程。 使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程。
6.4 数据库及数据库对象操作 利用企业管理器创建存储过程 (1)启动企业管理器登录到要使用的服务器。 (2)选择要创建存储过程的数据库,在左窗格中选择“存储过程”文件夹,此时会在右窗格中显示该数据库的所有存储过程。 (3)用右键单击存储过程图标,从弹出的快捷菜单中选择“新建存储过程…”选项,会出现创建存储过程对话框,如图2-1所示。 (4)在文本框中可以输入创建存储过程的T_SQL语句,单击“检查语法”,则可以检查语法是否正确;单击“确定”按钮,即可保存该存储过程。 (5)如果要设置用户访问权限,用右键单击新建的存储过程,在弹出的菜单中选择“所有任务”之下的 “管理权限”命令,对新建的存储过程设置权限。设置权限对话框如图2-2所示
6.4 数据库及数据库对象操作 图2-1 新建存储过程对话框
6.4 数据库及数据库对象操作 图2-2 设置权限对话框
语句:exec sp_helptext lzq 6.4 数据库及数据库对象操作 3 . 执行存储过程 在SQL Server的查询分析器中直接执行存储过程 直接执行存储过程可以使用EXECUTE命令来执行。 语法格式:exec 存储过程名 例:查看存储过程lzq的信息,可用系统存储过程 sp_helptext 语句:exec sp_helptext lzq
6.4 数据库及数据库对象操作 1. 触发器的概念 四、触发器 触发器是一种特殊类型的存储过程,它不同于前面介绍过的存储过程。 触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。 触发器是一个功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于 SQL Server 约束、默认值和规则的完整性检查。
6.4 数据库及数据库对象操作 2. 创建触发器 利用SQL Server 企业管理器创建触发器。 使用Transact-SQL语句中的CREATE TRIGGER 命令创建存储过程。
利用SQL Server 企业管理器创建触发器 6.4 数据库及数据库对象操作 利用SQL Server 企业管理器创建触发器 (1) 在企业管理器中,展开指定的服务器和数据库项。 (2) 展开要在其上创建触发器的表所在的数据库,用右键单击该表,从弹出的快捷菜单中选择“所有任务”子菜单下的“管理触发器”选项,则会出现触发器属性对话框。 (3) 在该对话框中,在“名称”文本框中选择“新建”,然后在文本框中输入触发器文本。 (4) 单击“检查语法”按钮,则可以检查语法是否正确。单击“应用”按钮,则在名称下拉列表中会有新创建的触发器名称。 (5) 单击“确定”按钮,即可关闭该对话框,成功创建触发器。
6.5 安全管理 一、 SQL Server的安全控制 一个用户如果要访问SQL Server数据库中的数据,必须要经过三个认证过程: 第二个认证过程是当用户访问数据库时,他必须具有对具体数据库的访问权,即验证用户是否是数据库的合法用户。 第三个认证过程是当用户操作数据库中的数据或对象时,他必须具有所要进行的操作的操作权,即验证用户是否具有操作许可。
6.5 安全管理 一、 SQL Server的安全控制 SQL Server的用户有两种类型: Windows授权用户:来自于Windows的用户或组; SQL授权用户:来自于非Windows的用户,我们也将这种用户称为SQL用户。
SQL Server为不同的用户类型提供有不同的安全认证模式。 6.5 安全管理 一、 SQL Server的安全控制 SQL Server为不同的用户类型提供有不同的安全认证模式。 Windows身份验证模式:允许Windows用户连接到SQL Server。在这种模式下,用户只需要通过Windows 的认证,就可以连接到SQL Server,而SQL Server本身也就不需要管理一套登录数据。 混合验证模式:表示SQL Server接受Windows授权用户和SQL授权用户。如果不是Windows操作系统的用户希望也能使用SQL Server,则应该选择混合验证模式。
6.5 安全管理 一、 SQL Server的安全控制 设置验证模式 (3) 在安全性选项栏中,身份验证中可以选择要设置的认证 模式,同时审核级别中还可以选择跟踪记录用户登录时 的哪种信息,例如登录成功或登录失败的信息等。 (4) 在启动服务帐户中设置当启动并运行SQL Server时默认 的登录者中哪一位用户。
6.5 安全管理 在SQL Server 2000 中,有两类登录帐户: 二、 管理SQL Server登录帐户 二是登录到SQL Server的Windows NT/2000网络帐户,这些网络帐户可以是组帐户也可以是用户帐户。 在安装完之后,系统会自动创建一些登录帐户(内置系统帐户)用户也可以根据需要创建登录帐户
6.5 安全管理 1. 建立登录帐户 其具体执行步骤如下: (1)打开企业管理器,单击需要登录的服务器左边的“+”号,然后展开安全性文件夹。 (2)用右键单击登录(login)图标,从快捷菜单中选择新建登录(new login)选项,则出现SQL Server登录属性—新建登录对话框,如图所示。 (3)在名称编辑框中输入登录名,在身份验证选项栏中选择新建的用户帐号是Windows 认证模式,还是SQL Server认证模式。在“数据库”下拉列表框中选择登录到SQL Server之后默认情况下要连接的数据库。
6.5 安全管理 2. 删除登录帐户 若不再需要某个登录账号,或者不再允许某个登录账号访问SQL Server,则可以将其删除。使用企业管理器删除登录账号的步骤为: (1)在控制台上依次单击“Microsoft SQL Servers”和“SQL Server组”左边的加号,然后单击服务器,展开树形目录。 (2)展开“安全性”节点,然后单击“登录”节点。 (3)在右边的内容窗格中,右击想要删除的登录账号,从弹出的菜单中选择“删除”命令或按Delete键。弹出一询问窗口 (4)若确实要删除此登录账号, 则单击“是”,否则单击“否”,取消删除操作。
6.5 安全管理 三、 管理数据库用户 用户具有了登录账号之后,他只能连接到SQL Server服务器上,但不具有访问任何数据库的能力,只有成为了数据库的合法用户后,才能访问此数据库。 数据库的用户只能来自于服务器上已有的登录账号,让登录账号成为数据库的用户就称为“映射”。 一个登录账号可以映射为多个数据库中的用户,这种映射关系为同一服务器上不同数据库的权限管理带来了很大的方便。 管理数据库用户的过程实际上就是建立登录账号与数据库用户之间的映射关系的过程。
6.5 安全管理 1. 建立数据库用户 2. 删除数据库用户 其具体执行步骤如下: (1)打开企业管理器,展开服务器及数据库节点。 (2)单击要建立数据库用户的数据库节点,右击“用户”,并在弹出的菜单上选择“新建数据库用户”命令。 (3)在“登录名”列表框中选择一个登录账号名。默认时“用户名”文本框的内容和用户选择的登录账号一样,用户可以在“用户名”文本框中输入一个新的数据库用户名,也可以采用与登录账号一样的用户名。 (4)单击“确定”关闭此窗口。 2. 删除数据库用户
6.5 安全管理 四、 管理权限 1.SQL Server权限种类 对象权限是指用户对数据库中的表、视图等对象的操作权,相当于数据库操作语言(DML)的语句权限, 语句权限相当于数据定义语言(DDL)的语句权限,这种权限专指是否允许执行下列语句:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作。 隐含权限是指由SQL Server预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限,隐含权限相当于内置权限,是由系统预先定义好的,它不需要进行设置。例如:数据库拥有者自动拥有对数据库进行一切操作的权限
6.5 安全管理 2. 权限管理 权限的管理包含如下三个内容: 授予权限:允许用户或角色具有某种操作权。 收回权限:不允许用户或角色具有某种操作权,或者收回曾经授予的权限。 拒绝访问:拒绝某用户或角色具有某种操作权,既使用户或角色由于继承而获得这种操作权,也不允许执行相应的操作 管理权限可以使用企业管理器实现,也可以使用SQL语句实现
6.5 安全管理 3.使用企业管理器管理数据库用户权限 (1)展开“数据库”并展开要设置权限的数据库,单击“用户”节点。 (2)在内容窗格中右击要设置权限的数据库用户,并从弹出的菜单中选择“所有任务”下的“管理权限”命令。可以进行如下设置: 授予权限 拒绝权限 收回权限
6.5 安全管理 4.使用企业管理器管理语句权限 (1)展开“数据库”,右击要设置语句权限的数据库,并从弹出的菜单中选择“属性”,在弹出的窗口中,选择“权限”选项卡。 (2)在要设置的语句权限以及用户所对应的方框中单击鼠标,使其中出现相应标记。
6.5 安全管理 5.使用SQL语句管理权限 (1) 授权语句GRANT 语法: GRANT 对象权限名 [ , … ] ON {表名 | 视图名 | 存储过程名} TO { 数据库用户名 | 用户角色名 } [, … ] 或 GRANT 语句权限名 [ , … ] TO { 数据库用户名 | 用户角色名 } [ , … ] 例1:为用户user1授予Student表的查询权。 GRANT SELECT ON Student TO user1 例2:为用户user1授予SC表的查询权和插入权。 GRANT SELECT,INSERT ON SC TO user1 例3:授予user1和user2具有创建数据库表和视图的权限。 GRANT CREATE TABLE, CREATE VIEW TO user1, user2
6.5 安全管理 5.使用SQL语句管理权限 (2) 收回权限语句REVOKE 语法:REVOKE 对象权限名 [ , … ] ON{ 表名 | 视图名 | 存储过程名 } FROM { 数据库用户名 | 用户角色名 } [ , … ] 或 REVOKE 语句权限名 [ , … ] FROM{ 数据库用户名 | 用户 角色名 } [ , … ] 例1:收回用户user1授予Student表的查询权。 REVOKE SELECT ON Student FROM user1 例2:收回授予user1创建数据库表的权限。 REVOKE CREATE TABLE FROM user1
6.5 安全管理 五、 角色 在数据库中,为便于对用户及权限的管理,将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。 在SQL Server 2000中,角色分为系统预定义的固定角色和用户根据自己的需要定义的用户角色。 系统角色又根据其作用范围的不同而被分为固定的服务器角色和固定的数据库角色,服务器角色是为整个服务器设置的,而数据库角色是为具体的数据库设置的。 用户角色属于数据库一级的角色。用户可以根据实际的工作职能情况定义自己的一系列角色,并给每个角色授予合适的权限。 这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。
服务器角色 系统管理员:拥有SQL Server所有的权限许可。 服务器管理员:管理SQL Server服务器端的设置。 服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理SQL Server的权限都是SQL Server内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。 系统管理员:拥有SQL Server所有的权限许可。 服务器管理员:管理SQL Server服务器端的设置。 磁盘管理员:管理磁盘文件。 进程管理员:管理SQL Server系统进程。 安全管理员:管理和审核SQL Server系统登录。 安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。 数据库创建者:创建数据库,并对数据库进行修改。
数据库角色 数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的。 固定的数据库角色: public:维护全部默认许可。 db_owner:数据库的所有者,可以对所拥有的数据库执行任何操作。 db_accessadmin:可以增加或者删除数据库用户、工作组和角色。 db_addladmin:可以增加、删除和修改数据库中的任何对象。 db_securityadmin:执行语句许可和对象许可。 db_backupoperator:可以备份和恢复数据库。 db_datareader:能且仅能对数据库中的任何表执行select操作,从而读取所有表的信息。 db_datawriter:能够增加、修改和删除表中的数据,但不能进行select操作。 db_denydatareader:不能读取数据库中任何表中的数据。 db_denydatawriter:不能对数据库中的任何表执行增加、修改和删除数据操作。
(5)选中“标准角色”单选按钮,以建立一个标准的数据库角色。 (6)此时,可以在此单击“添加”按钮,直接在此角色中添加成员。 6.5 安全管理 1.建立用户自定义的角色 使用企业管理器建立用户自定义的角色的过程为: (1)在控制台上展开服务器组,并展开服务器。 (2)展开“数据库”,并展开要添加用户自定义角色的数据库。 (3)右击“角色”节点,选择“新建数据库角色”命令。 (4)在“名称”文本框中输入角色的名字。 (5)选中“标准角色”单选按钮,以建立一个标准的数据库角色。 (6)此时,可以在此单击“添加”按钮,直接在此角色中添加成员。 (7)单击“确定”按钮,关闭此窗口。
6.5 安全管理 2.为用户自定义的角色授权 使用企业管理器为用户自定义的角色进行授权的过程为: (1)在控制台上展开服务器组,并展开服务器。 (2)展开“数据库”,并展开要操作的用户自定义角色所在的数据库。 (3)右击“角色”节点,在右边的内容窗格中,右击要授予权限的用户定义的角色,在弹出的菜单中选择“属性”命令。 (4)单击“权限”按钮,对角色进行授权的其他过程与对数据库用户进行授权的过程类似。
6.5 安全管理 3.添加和删除自定义的角色的成员 使用企业管理器向角色添加和删除成员的步骤为: (1)展开“数据库”,并展开要操作的用户自定义角色所在的数据库。 (2)右击“角色”节点,在右边的内容窗格中,右击要添加成员的角色,在弹出的菜单中选择“属性”命令。 (3)单击“添加”按钮,弹出“添加成员”窗口,在此窗口中选择要添加的用户,然后单击“确定”按钮。 (4)想从角色中某个成员 ,只是在角色“属性”窗口中选择要删除的用户,然后单击“删除”按钮,然后再单击“确定”按钮。
6.6 数据传输 数据传输:将不同来源的数据进行相互传输,以便利用其它数据源上的数据。 在SQL Server中专门提供了一个数据转换服务(Data Transformation Service , DTS)实现数据传输
6.6 数据传输 一、DTS功能概述 DTS提供了许多传输数据的工具,不同的工具适用于不同的情况。 l 导入/导出向导:此向导用于方便快捷地建立简单的数据导入和导出操作,它可以实现不同数据源之间的数据传输以及数据传输过程中的数据转换。 l DTS设计器:此工具用于建立带有工作流和事件驱动逻辑的较为复杂的数据转换操作。 l 在DTS中,一般使用OLE DB提供者(数据库访问接口)在不同的数据库之间传输和转换数据。DTS的源数据和目的数据可以是异构的数据库,比如将电子表格数据导入到数据库中。 l DTS可以支持Excel、Access、Foxpro、Oracle、SQL Server、 Text等多种格式的数据间的导入与导出
6.6 数据传输 二、利用DTS向导实现数据的导入和导出 DTS提供了一个数据导入和导出的向导(DTS Import/Export Wizard)来辅助用户实现对数据的导入和导出。导入/导出向导可在企业管理器启用,也可以从“Microsoft SQL Server”程序组中的“导入和导出数据”中启用。 导入/导出实现过程: (以将学生管理数据库中数据导出到Excel 文件中为例) (1)在企业管理器中,选择“工具”菜单下的“向导”,在弹出的窗口中,展开“数据转换服务”,然后选择数据转移的方式(导入或导出)。也可以在“工具” 菜单中直接选择“数据转换服务”下的“导入数据”或“导出数据”命令。 (2)选择“DTS导出数据”,单击“确定”,弹出选择数据源窗口
6.6 数据传输 (3)定义数据的来源,包括如下几项: 二、利用DTS向导实现数据的导入和导出 定义数据源的类型 指定数据源所在的服务器 指定登录到服务器的用户 的身份验证方式 选择要导出数据所在的数据库
6.6 数据传输 二、利用DTS向导实现数据的导入和导出 (4)选择目的数据源的类型和存放位置。 如果选择的目的地是服务器类型的数据库,需要设置目的数据库所在的位置、数据库服务器的名称和服务器的登录帐号。 如果选择的目的地是文件类型的,需要设置目的文件的存放位置和文件名。 如果选择的目的地是Access或dBase类型的数据库,则需要指定数据库文件名或数据库所在的目录名)。
6.6 数据传输 二、利用DTS向导实现数据的导入和导出 (5) 选择要传输的数据的来源, 有三种方式: 源数据库复制表和视图; 用一条查询指定要传输的数据:表示将查询语句的结果作为要传输的数据; 在SQL Server数据库之间复制对象和数据:此选项只能用在数据源和目的地都是SQL Server的情况 。
6.6 数据传输 二、利用DTS向导实现数据的导入和导出 (6)指定数据传输的执行方式。数据的传输有如下几种执行方式: 立即执行:表示在数据传输定义完之后立即执行数据的导入/导出操作。 调度DTS包以便以后执行:此选项可以指定数据传输操作执行的时刻和执行的频度。如果希望定期地进行数据传输操作,可选此项。 保存DTS包:表示将定义好的数据传输过程以包的形式保存起来,以后在需要时,可以随时执行此DTS包,进行数据传输。
6.7 数据库的备份与恢复 一、数据库备份 备份数据库就是将数据库数据和与数据库的正常运行有关的 信息保存起来,以便在数据库遭到破坏时能够及时地将其恢复。 SQL Server 2000四种备份方式 完全备份: 是将数据库的全部内容均备份下来,对数据库进行的 第一个备份必须是完全备份 差异备份:是将从最近的完全备份之后对数据所做的修改进行备份 事务日志备份:是备份自前一次日志备份之后的日志内容 文件和文件组备份:是对数据库中的个别文件进行备份,主要用 于特大型数据库
6.7 数据库的备份与恢复 1 备份设备 在进行备份以前首先必须指定或创建备份设备。 1 备份设备 在进行备份以前首先必须指定或创建备份设备。 备份设备是用来存放备份数据的物理设备,备份设备可以是磁盘、磁带或命名管道。 SQL Server使用物理设备名称和逻辑设备名称来标识备份设备,物理备份设备是操作系统用来标识备份设备的名称,实际上也就是在操作系统中的存放位置和文件名,比如D:\Backup\BK1.bak。逻辑备份设备名称是用来标识物理备份设备的别名和公用名称,这个名称被存储在SQL Server的系统表中。使用逻辑备份设备名称的好处是引用它比引用物理设备名称简单,例如,逻辑备份设备名可以是BK1。
6.7 数据库的备份与恢复 1 备份设备 创建备份设备方法:使用企业管理器或使用系统存储过程 使用企业管理器创建备份设备的步骤为: 1 备份设备 输入备份 设备名称 创建备份设备方法:使用企业管理器或使用系统存储过程 使用企业管理器创建备份设备的步骤为: (1) 启动企业管理器,展开服务器组及服务器。 (2) 展开“管理”,并在其中的“备份”节点上右击鼠标,在弹出的菜单中选择“新建备份设备”命令。 (3) 在弹出的窗口中输入备份设备的名称和存储位置。默认存储位置为:C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\。 (4) 单击“确定”按钮,关闭此窗口并创建备份设备。 修改备份设备文件的存储位置
6.7 数据库的备份与恢复 2 备份数据库的方法 在企业管理器中实现备份 使用Transact-SQL的备份语句进行备份 备份向导
6.7 数据库的备份与恢复 在企业管理器中实现备份 步骤: (1)启动企业管理器,登录到指定的数据库服务器,打开数据库文件夹,用右键单击所要进行备份的数据库图标,在弹出的快捷菜单中选择“所有任务”,再选择“备份数据库” 。 (2)出现SQL Server备份对话框,对话框中有两个页框,即常规和选项页框。 (3)在常规页框中,选择备份数据库的名称、操作的名称、描述信息、备份的类型、备份的介质、备份的执行时间。 (4)通过单击添加按钮选择备份设备 。 (5)选择调度复选框,来改变备份的时间安排。 设置定期数据库备份选项时要注意:必须启动“SQL Server Agent”服务。因为定期进行数据库备份是一个自动执行的作业,而在SQL Server中,自动执行的作业是靠SQL Server Agent服务完成的。 ( 6 )在选项页框中进行附加设置 。
6.7 数据库的备份与恢复 使用Transact-SQL的备份语句进行备份 备份数据库的语句格式为:BACKUP DATABASE 数据库名 TO { < 备份设备名 > } | { DISK | TAPE } = {‘物理备份文件名’} [ WITH [ DIFFERENTIAL ][ [ , ] { INIT | NOINIT } ]] < 备份设备名 > :表示将数据库备份到已创建好的备份设备名上; DISK | TAPE:表示将数据库备份到磁盘或磁带; 对于备份到磁盘的情况,应该输入一个完整的路径和文件名,例如:DISK=’D:\Data\MyData.bak’。如果输入一个相对路径名,则备份文件将存储到默认的备份目录:C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\ 中。 DIFFERENTIAL:表示进行差异备份; INIT:表示本次备份数据库将重写备份设备,即覆盖掉本设备上以前进行的所有备份; NOINIT:表示本次备份数据库将追加到备份设备上,即不覆盖掉本设备上以前进行的所有备份;
6.7 数据库的备份与恢复 使用Transact-SQL的备份语句进行备份 备份数据库日志的语句格式为:BACKUP LOG 数据库名 TO { < 备份设备名 > } | { DISK | TAPE } = {‘物理备份文件名’} [ WITH[ { INIT | NOINIT } ][ { [ , ] NO_LOG | TRUNCATE_ONLY | NO_TRUNCATE } ]] NO_LOG 和TRUNCATE_ONLY:表示备份完日志后要截断不活动的日志。 NO_TRUNCATE:表示备份完日志后不截断不活动的日志。 例1.对学生管理数据库进行完全备份,并备份到MyBK_1备份设备上(假设此备份设备已创建好)。 BACKUP DATABASE 学生管理数据库 TO MyBK_1 例2.对学生管理数据库进行完全备份,并覆盖掉备份设备上已有的内容 BACKUP DATABASE 学生管理数据库 TO MyBK_1 WITH INIT 例3.对学生管理数据库进行事务日志备份,并备份到MyBKLog1备份设备上。 BACKUP LOG 学生管理数据库 TO MyBKLog1
6.7 数据库的备份与恢复 二、恢复数据库 数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复数据库。 数据库恢复是指将数据库备份加载到系统中的过程。系统在恢复数据库的过程中,自动执行安全性检查、重建数据库结构以及完整数据库内容。 数据库恢复有自动恢复和手动恢复
6.7 数据库的备份与恢复 1 自动恢复 每次在启动SQL Server数据库管理系统时,系统都会进行自动恢复,检查并查看是否有恢复工作需要进行。 自动恢复过程是检查每个数据库的事务日志,查看主要包括两个方面: 第一,查看是否有不完整的事务; 第二,查看是否有已经提交的事务。 SQL Server中的自动恢复过程以master开始,然后是model数据库、msdb数据库。在所有的系统数据库恢复完成之后,恢复用户的数据库。在系统自动恢复过程完成之后,才允许用户登录到数据库服务器上。
6.7 数据库的备份与恢复 2 手工恢复 (1)恢复前的准备 2 手工恢复 (1)恢复前的准备 在对数据库进行恢复之前,应先对数据库的访问进行一些必要的限制。因为在数据库恢复过程中,是不允许有用户操作数据库的。 限制用户对数据库的访问的设置是在数据库的属性窗口中完成的,具体操作如下: 在要恢复的数据库上单击鼠标右键,在弹出的菜单中选择“属性”,然后在弹出的窗口中选择“选项”标签页。 在上边的“访问”一栏中有两个选项:“限制访问”和“只读”。选中“限制访问”复选框。 在恢复过程中,除了要限制用户对数据库的访问外,如果数据库的日志没有损坏,还可以在恢复之前对数据库进行一次日志备份,这样就可以将数据的损失减小到最少。
6.7 数据库的备份与恢复 2 手工恢复 (2)恢复顺序 备份数据库是按一定的顺序进行的,在恢复数据库时也必须要遵守 严格的顺序关系。 2 手工恢复 (2)恢复顺序 备份数据库是按一定的顺序进行的,在恢复数据库时也必须要遵守 严格的顺序关系。 恢复数据库的顺序为: 恢复最近的完全数据库备份。 恢复完全备份之后的最近的差异数据库备份(如果有的话)。 按日志备份的先后顺序恢复自完全或差异数据库备份之后的所有日志备份。
6.7 数据库的备份与恢复 2 手工恢复 (3)用企业管理器实现恢复 在企业管理器中恢复数据库的步骤为: 2 手工恢复 (3)用企业管理器实现恢复 在企业管理器中恢复数据库的步骤为: 在“控制台”上展开服务器组和服务器。 展开“数据库”节点,在任何一个数据库名上单击鼠标右键,在弹出的菜单上选择“所有任务”,然后再选择“还原数据库”,弹出“还原数据库”窗口。 在“还原为数据库”窗口中选择要恢复的数据库在还原组中通过单击单选按钮来选择相应的数据库备份类型。 选中选项页框,进行其它选项的设置 。
6.7 数据库的备份与恢复 2 手工恢复 (4)使用Transact-SQL语句实现恢复 2 手工恢复 (4)使用Transact-SQL语句实现恢复 恢复数据库和日志的Transact-SQL语句是RESTORE语句。 恢复数据库的语句格式为: RESTORE DATABASE 数据库名 FROM 备份设备名 [ WITH FILE = 文件号 [ , ] NORECOVERY [ , ] RECOVERY ] FILE = 文件号:标识要还原的备份集。 NORECOVERY:指明对数据库的恢复操作还没有完成。 RECOVERY:指明对数据库的恢复操作已经完成。 恢复日志的语句格式为: RESTORE LOG 数据库名
6.7 数据库的备份与恢复 2 手工恢复 例1.假设已对学生管理数据库进行了完全备份,并备份到MyBK_1备份设备上,假设此备份设备只含有对学生管理数据库的完全备份。则恢复学生管理数据库的备份的语句为: RESTORE DATABASE 学生管理数据库 FROM MyBK_1 例2.假设对学生管理数据库进行了如图的备份过程,假设在最后一个日志备份完成之后的某个时刻系统出现故障,现利用所作的备份对其进行恢复。 完全备份到MyBK_2设备上 差异备份到MyBK_2设备上 日志备份到MyBKLog1设备上 t 学生管理数据库的备份过程
6.7 数据库的备份与恢复 2 手工恢复 (1)首先恢复完全备份 RESTORE DATABASE 学生管理数据库 FROM MyBK_2 2 手工恢复 (1)首先恢复完全备份 RESTORE DATABASE 学生管理数据库 FROM MyBK_2 WITH FILE=1, NORECOVERY (2)然后恢复差异备份 WITH FILE=2, NORECOVERY (3)最后恢复日志备份 RESTORE LOG 学生管理数据库 FROM MyBKLog1