21
第8第 SQL Server 第第第第 8.1 SQL Server 第第第第第 第第第第第第第第第第第 SQL Server( 第第第第第第第 ) 第第第第第第第第第第第第第 ( 第第第第第第第 ) 第第第第第第第第第第第第第第第 ( 第第第第第第第第第 ) 第第第第第第第 第第第第第第第第 第第第第第第第第第第 一统 SQL Server 2 000 第第第第第第 第第第第第第 第第第第第第第第第第第第第第 第第第第第第第第第第第第第第 、、,。

第 8 章 SQL Server 安全管理

Embed Size (px)

DESCRIPTION

第 8 章 SQL Server 安全管理. 安全性对于任何一个数据库管理系统来说都是至关重要的。 SQL Server 2000 使用登录标识、数据库用户、角色等来保护数据库中的数据,以防止这些数据的非授权使用。. 8.1 SQL Server 的安全机制 三级安全层次: 必须登录到 SQL Server( 服务器的安全性 ) 必须具备访问某数据库的权限 ( 数据库的安全性 ) 必须具备访问数据库中对象的权限 ( 数据库对象的安全性 ). 谁都可以任意访问数据库吗 ?. 8.2 身份验证 ( 服务器的安全性 ). 8.2.1. 身份验证模式 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 8 章 SQL Server 安全管理

第 8 章 SQL Server 安全管理

8.1 SQL Server 的安全机制

三级安全层次:必须登录到 SQL Server( 服务器的安全性 )必须具备访问某数据库的权限 ( 数据库的安全性 )必须具备访问数据库中对象的权限 ( 数据库对象的安全性 )

安全性对于任何一个数据库管理系统来说都是至关重要的。 SQL Server 2000 使用登录标识、数据库用户、角色等来保护数据库中的数据,以防止这些数据的非授权使用。

Page 2: 第 8 章 SQL Server 安全管理

8.2 身份验证 (服务器的安全性 )

8.2.1. 身份验证模式 SQL Server 2000 提供了两种身份验证模式:

①Windows 身份验证模式② 混合模式 (Windows 身份验证和 SQL Server 身

份验证 ) 身份验证模式的选择可以在首次安装 SQL Server 时进行 (P10) ,也可以后期修改 ( 右击服务器,“属性”,“安全性”选项卡 ) 。 当连接 SQL Server 服务器时,需指定使用哪种身份验证 ( 当然,必须符合该服务器的身份验证模式 ) 。

Page 3: 第 8 章 SQL Server 安全管理

8.2 身份验证 (服务器的安全性 )

8.2.2. 登录帐号 服务器的安全性是通过设置系统登录帐号进行管理的。有了登录帐号才能进入 SQL Server 服务器。 在 SQL Server 2000 中有两种登录帐号:

①Windows 用户帐号②SQL Server 帐号

依次展开“服务器组、服务器、安全性、登录”节点,就会看到 SQL Server 的登录帐号。此时可以添加和管理登录帐号。

Page 4: 第 8 章 SQL Server 安全管理

8.2.2. 登录帐号1. 系统内置的登录帐号安装 SQL Server 后,就会看到 2 个或 3 个登录帐号:builtin\administrators : Windows 的组帐号,凡属于该组的帐号都允许登录 SQL Server 。sa : SQL Server 超级系统管理员帐号,拥有最高的管理权限,可以执行服务器范围内的所有操作。域名或计算机名 \administrator : Windows 的 administrator帐号,允许登录 SQL Server 。

建议:日常管理中最好不要使用 sa 登录帐号,可以再添加一个系统管理员帐号。

Page 5: 第 8 章 SQL Server 安全管理

8.2.2. 登录帐号2. 添加和管理登录帐号 依次展开“服务器组、服务器、安全性、登录”节点,此时可以添加、修改、删除、禁止登录帐号。(1) 添加 Windows 帐号:

Windows 的用户必须在 SQL Server 中有登录帐号才可登录 SQL Server 服务器。

具体操作:单击浏览按钮来查找和添加用户或组,选择默认数据库、默认语言。(2) 添加 SQL Server 帐号:输入名称和密码。

注:系统表 sysxlogins 中记录所有的登录帐号。

Page 6: 第 8 章 SQL Server 安全管理

8.3 权限验证8.3.1. 用户帐号 (数据库的安全性 )

一个登录帐号成功登录 SQL Server 服务器后,并不自动拥有对所有数据库的访问权限,它还必须在想要访问的数据库中有一个用户帐户。

在安装 SQL Server 后,系统数据库 ( 如 master) 包含两个用户: dbo 和 guest 。任何一个登录帐号都可通过 guest 帐号来访问相应的数据库。但新建的数据库只有一个 dbo 用户。

sa 和 builtin\administrators 会自动成为数据库的用户帐号 dbo 。 单击“用户”,可看到登录帐号与用户帐户之间的映射。

Page 7: 第 8 章 SQL Server 安全管理

8.3.1. 用户帐号添加和管理用户帐号

展开某数据库,单击“用户”,此时可以添加、修改、删除该数据库的用户帐号。实际上就是把一个登录帐号映射为数据库的用户帐号。

其实,在添加和管理登录帐号时,就可以把登录帐号与所允许访问的数据库联系起来 ( 登录帐号属性中“数据库访问”选项卡 )

注:系统表 sysusers 中记录所有的用户帐号。有了用户帐号,可以访问数据库了。但是,对数据库

有哪些权限呢 ( 数据库对象的安全性 )? 首先,可以通过为该用户帐号指定一个或多个适当的数据库角色来实现,其次,可以直接为该用户帐号设置权限。

Page 8: 第 8 章 SQL Server 安全管理

8.3.2. 数据库角色1. 固定的数据库角色 展 开 某 数 据 库 , 单 击 “ 角 色 ” , 就 会 看 到 10 个固定的数据库角色。不同的数据库角色具有不同的权限。 在添加或管理用户帐号时,可以为其指定一个或多个数据库角色,从而使其具有相应权限。 每个数据库中都有一个特殊的数据库角色 public。数据库中的每个用户都属于 public角色。如果想让数据库中的每个用户都具有某个特定的权限,则可以将该权限指派给public角色。 public角色无法删除。

Page 9: 第 8 章 SQL Server 安全管理

P198

Page 10: 第 8 章 SQL Server 安全管理

8.3.2. 数据库角色2. 自定义数据库角色 很多时候,固定的数据库角色不能满足需要。例如:管理员需要给market 数据库的一些用户设置这样的权限:对表 orders 有增删改的权限,但对 goods 表和 customers 表只有查询的权限。

展开某数据库,单击“角色”,就可以建立和管理自定义的数据库角色。注意:先建立角色、添加用户,后授予权限。

注意:甚至可以对表中的列设置权限。

应用程序角色 (略 )

Page 11: 第 8 章 SQL Server 安全管理

8.3.3. 用户和角色的权限如前所述,数据库中的用户帐号,通过为其指定一个或多

个数据库角色 ( 至少是 public角色 ) ,获得了相应的数据库对象的权限。

其实,也可以单独为其设置权限,方法:右击用户帐号,“属性”,单击“权限”按钮。

另外,可以给表、视图、存储过程等数据库对象设置权限( 哪些用户和角色可以对其有何种权限 ) ,方法:右击数据库对象,“所有任务”→“管理权限”。

① 用户权限继承角色权限,也可单独设置权限② 用户可分属不同角色③拒绝权限优先

用户和角色的权限规则

Page 12: 第 8 章 SQL Server 安全管理

8.3.4. 了解用 SQL 语句管理权限

√GRANT 命令用于把权限授予某帐户,以允许该用户执行针对某对象的操作或允许其运行某些语句。

例:GRANT CREATE DATABASE TO wsmGRANT INSERT,UPDATE ON goods TO wsm

×DENY 命令可以用来禁止用户对某一对象的某些操作或禁止某些语句的执行。

REVOKE命令用来取消经过 GRANT语句授予的用户对某一对象或语句的权限。

在默认状态下 ,只有系统管理员等才有权利执行数据控制语言 (DCL)

Page 13: 第 8 章 SQL Server 安全管理

补充:服务器角色问题—如果要允许某帐户创建数据库,怎么做?

方法—令其属于服务器角色 Database Creators

服务器角色具有完成特定的服务器管理的权限。依次展开“服务器组、服务器、安全性、服务器角色”节点,就会看到固定的8个服务器角色。

可以向这些角色中添加成员以获得相应的管理权限。在添加或管理登录帐号时,可以令其属于一个或多

个服务器角色 ( 不是必须的 ) ,从而使其具有相应权限。

Page 14: 第 8 章 SQL Server 安全管理
Page 15: 第 8 章 SQL Server 安全管理

第 9章 数据库的备份和还原

何时需要备份和还原 ?存储媒体损坏用户操作错误服务器崩溃在不同的服务器之间移动数据库时

SQL Server 2000 提供的数据库备份和还原机制可以最大限度地避免用户数据的意外丢失,并为不同服务器上的用户传递数据提供了方便快捷的手段。

备份要事先做

9.1 概述

Page 16: 第 8 章 SQL Server 安全管理

四种备份方法

完全数据库备份 差异备份 (增量备份 ) : 只备份最后一次全库备份后被修改的数据事务日志备份: 只备份对数据库的所有更改的命令数据库文件和文件组备份 (略 ) : 必须与事务日志备份相结合才有意义

Page 17: 第 8 章 SQL Server 安全管理

例:数据库备份与还原顺序表备份方法 时刻 1 时刻 2 时刻 3 时刻

4还原顺序

全库备份 全库 1 全库 2 全库 3差异备份 全库 1 差异 1 差异 2日志备份 全库 1 日志 1 日志 2

日志备份 全库 1 日志 1 差异 1 日志2

文件和文件组备份

文件 1,日志 1

文件 2,日志 2

文件 1,日志 3

全库 3全库 1→差异 2全库 1 →日志 1 →日志 2全库 1 →差异 1 →日志 2 文件 1: 时刻 3 的文件1 →日志 3文件 2: 时刻 2 的文件2 →日志 2 →日志 3

Page 18: 第 8 章 SQL Server 安全管理

建议采用的备份方案在实际工作中为了最大限度地减少数据库还原时

间,降低数据损失数量,一般综合使用全库备份、差异备份和事务日志备份。

备份方案二①每天一次全库备份②每 4小时一次差异备份③每 30分钟一次事务日志备份

备份方案一①每周一次全库备份②每天一次差异备份③每小时一次事务日志备份

还原时,先还原最后一次全库备份,再还原最后一次差异备份,再顺次还原最后一次差异备份以后进行的所有的事务日志备份。

若要还原到失败点,应备份当前正处于活动状态的事务日志。如果无法备份,则不能还原到失败点。

Page 19: 第 8 章 SQL Server 安全管理

9.2 备份数据库1. 备份数据库备份的方法:①向导 ②企业管理器 ③ SQL 语句 右击数据库,“所有任务”“备份数据库”

注意:如果不能选择“事务日志”和“文件和文件组”备份,可以在数据库“属性”对话框的“选项”中将“故障还原模型”更改为“完全”。2. 创建备份设备

备份设备是用来存储各种备份的存储介质。备份设备在硬盘中是以文件的方式存储的。一个备份设备中可以放多个数据库的备份,易于管理。文件夹“管理”|“备份”下可创建和管理备份设备。

P207

Page 20: 第 8 章 SQL Server 安全管理

9.3 还原数据库数据库备份后,一旦系统发生崩溃或者数据库中

的数据被破坏,就可以从备份文件中恢复数据库,减少损失。

方法:右击“数据库”,“所有任务”“还原数据库”,选择要还原的数据库及其备份。

注意:如果要还原的是已经被删除的数据库,或者是其他计算机上备份的数据库,那么只能选择“从设备”还原,并在“还原为数据库”框中直接输入数据库名,最后还要注意“选项”中“还原为”的路径是否正确。

Page 21: 第 8 章 SQL Server 安全管理

9.4 数据库的维护

利用数据库的维护计划向导可以方便地设置数据库的自动维护任务,为管理员节省时间,也可以防止延误数据库的维护工作。方法:右击数据库,“所有任务”“维护计划”

其实,在备份数据库的“调度”中,就可以安排备份计划。