第07章安全性.ppt

上传人:本田雅阁 文档编号:2907717 上传时间:2019-06-04 格式:PPT 页数:46 大小:202.02KB
返回 下载 相关 举报
第07章安全性.ppt_第1页
第1页 / 共46页
第07章安全性.ppt_第2页
第2页 / 共46页
第07章安全性.ppt_第3页
第3页 / 共46页
第07章安全性.ppt_第4页
第4页 / 共46页
第07章安全性.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《第07章安全性.ppt》由会员分享,可在线阅读,更多相关《第07章安全性.ppt(46页珍藏版)》请在三一文库上搜索。

1、第7章 安全性,安全性概述 用户管理和角色管理 权限管理 其他安全问题,安全性措施的层次,物理层,重要的计算机系统必须在物理上受到保护,以防止入侵者强行进入或暗中潜入。 人员层,对用户的授权要严格掌握,以减少授权用户渎职、受贿,从而为入侵者提供访问的机会。 操作系统层,要进入数据库系统,首先要经过操作系统,所以如果操作系统的安全性能差,也会对数据库造成威胁。 网络层,由于几乎所有网络上的数据库系统都允许通过终端或网络进行远程访问,所以网络的安全和操作系统的安全一样重要,网络安全了,无疑会对数据库的安全提供一个保障。 数据库系统层,数据库系统应该有完善的访问控制机制,允许查询和允许修改有严格的界

2、限,尽量保证不出现越权的操作。,数据库管理系统的安全功能,安全性控制是数据库管理员(或系统管理员)的一个重要任务,他要充分利用数据库管理系统的安全功能,保证数据库和数据库中数据的安全。 安全系统的核心问题是身份识别。 几个概念 用户 权限 用户组 角色,自主存取控制,自主存取控制就是由用户(如数据库管理员)自主控制对数据库对象的操作权限,哪些用户可以对哪些对象、进行哪些操作,完全取决于用户之间的授权。任何用户只要需要,就有可能获得对任何对象的操作权限。这种存取控制方式非常灵活,但有时也容易失控。目前大多数数据库管理系统都支持的是自主存取控制方式。,强制存取控制,强制存取控制的思路是,为每一个数

3、据库对象标以一定的密级(Classification level),对每一个用户都确定一个许可级别(Clearance level)。如密级可以分为绝密、机密、保密、秘密、公开等若干级别;而用户可以划分为一级用户(可以操作所有数据)、二级用户(可以操作除绝密以外的所有数据)、三级用户等。 强制存取控制本质上具有分层的特点,通常具有静态的、严格的分层结构,与现实世界的层次管理也相吻合。这种强制存取控制特别适合层次严明的军方和政府等数据管理。,SQL Server的身份验证模式,SQL Server提供了三种身份验证模式或安全管理模式,即标准模式、集成模式和混合模式。在Windows NT或Win

4、dows 2000上使用集成模式或混合模式,在Windows 98(或Millennium)上使用标准模式。,标准身份验证模式,实际上,一般的数据库管理系统都只提供标准身份验证模式,在这种模式下,由数据库管理系统独立来管理自己的数据库安全。数据库管理系统把用户登录的ID号和口令存储在特定的系统表中,当用户试图登录到数据库系统时,数据库管理系统查询有效的登录ID和口令,以决定是否允许用户登录。 一般的数据库管理系统只有标准登录模式,所以很多SQL Server的用户也习惯使用标准身份验证模式,因为他们熟悉登录和密码功能。对于连接到Windows客户端以外的其它客户端,可能也必须使用标准身份验证。

5、,集成身份验证模式,集成身份验证模式也称为Windows身份验证模式,用户通过Windows NT或 Windows 2000(以下简称Windows)的身份验证后则自动进行SQL Server身份验证。即当用户通过Windows用户账户进行连接时,SQL Server通过回叫Windows以获得信息,重新验证账户名和密码。,SQL Server的安全体系,图7-1 SQL Server安全体系,混合身份验证模式,混合模式使用户得以使用 Windows身份验证或SQL Server身份验证与SQL Server实例连接 。,混合身份验证模式的登录决策过程,用户管理和角色管理,用户的分类 登录用

6、户和数据库用户 用户管理 角色管理 SQL Server的预定义角色,用户的分类,系统管理员用户 数据库管理员用户 数据库对象用户 数据库访问用户,图7-1 SQL Server安全体系,登录用户和数据库用户,登录用户(login user) 数据库用户(database user),用户管理,登录用户的管理 系统管理员的工作 建立新的登录用户 修改登录密码 删除登录用户 数据库用户的管理 数据库管理员的工作 授权其他登录用户为数据库的用户 取消某个登录用户为数据库的用户,建立新的登录用户,sp_addlogin loginname= login_id ,passwd=passwd ,defd

7、b=defdb ,deflanguage=deflanguage ,sid=sid ,encryptopt =encryption_option 一个新的SQL Server用户起初几乎没有操作数据库的权限,他的权限需要由系统管理员或数据库管理员来授予.,修改登录密码,sp_password old = old_password , new = new_password , loginame = login ,删除登录用户,sp_droplogin loginame = login,授权登录用户为当前数据库用户,sp_grantdbaccess loginame = login ,name_i

8、n_db = name_in_db 使一个登录用户成为数据库用户只是授权的第一步,数据库管理员可以进一步为能够连接到自己所管理数据库的用户在该数据库上授予所需要的权限.,从当前数据库中删除用户,sp_revokedbaccess name_in_db = name,角色管理,将具有相同或相近操作权限的用户组织成“组”可以简化对用户的管理工作。 用户组和角色 定义角色 为用户指定角色 取消用户的角色 删除角色,角色管理,具有相同权限的用户也可以说担当相同的“角色”。这里的“组”和“角色”表面上是两个概念,实际上是一回事。从用户组的角度解释,是先定义用户组,然后按用户组管理权限,而从角色解释,则是

9、先定义权限,然后为用户指定角色。如:,定义角色,sp_addrole rolename = role , ownername = owner ,为用户指定角色,sp_addrolemember rolename = role , membername = user_account,取消用户的角色,sp_droprolemember rolename = role , membername = user_account,删除角色,sp_droprole rolename = role,SQL Server的预定义角色,public角色 系统预定义角色 使用sp_helpsrvrole获得各种系统

10、管理员角色的描述 使用sp_srvrolepermission得到每种系统管理员角色的特定权限(可以执行的命令、系统存储过程或说明) 数据库预定义角色 使用sp_helpdbfixedrole获得数据库上各种预定义角色的描述 使用sp_dbfixedrolepermission得到每种数据库预定义角色的特定权限(可以执行的命令、系统存储过程或说明),public角色,public角色是一个特殊的数据库角色,每个数据库用户都是该角色的成员。public角色具有如下特点: public角色自动获得数据库中用户的所有默认权限; 不需要、也无法将用户指派给public角色,因为默认情况下所有用户都属于

11、该角色; 每个数据库(包括所有系统数据库和所有用户数据库)都有public角色; 不可以删除public角色。,系统预定义角色,sysadmin:具有系统管理员全部权限的角色。 serveradmin:负责配置数据库服务器的设置。 setupadmin:负责添加和删除链接的服务器。 securityadmin:负责管理服务器的登录。 processadmin:负责管理在SQL Server实例中运行的进程。 dbcreator:负责创建和改变数据库。 bulkadmin:可以执行BULK INSERT语句(数据库数据的装载)。,数据库预定义角色,db_owner:在数据库中有全部权限,即具有数

12、据库管理员全部权限的角色。 db_accessadmin:负责数据库用户的管理。 db_securityadmin:负责数据库的安全管理,如负责权限管理、角色和角色成员资格管理等。 db_ddladmin:主要负责数据库的完整性和一致性检查及管理。 db_backupoperator:主要负责数据库的备份。 db_datareader:可以查询数据库中任何用户表中的所有数据。 db_datawriter:可以更改数据库中任何用户表中的所有数据。 db_denydatareader:不能查询数据库中任何用户表中的任何数据。 db_denydatawriter:不能更改数据库中任何用户表中的任何数

13、据。,权限管理,授予权限 授予语句权限 授予对象权限 查询授权 收回权限 禁止权限 角色与存取控制,授予语句权限,GRANT ALL | statement_list TO name_list statement_list给出授权的语句列表,可以是: BACKUP DATABASE BACKUP LOG CREATE DATABASE CREATE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE RULE CREATE TABLE CREATE VIEW,授予语句权限,例:,授予对象权限,处理数据或执行存储过程时需要有相应对象的操作或执行权限,这

14、些权限可以划分为: SELECT、INSERT、UPDATE和DELETE语句权限,它们可以应用到整个表或视图上。 SELECT和UPDATE 语句权限,它们可以有选择性地应用到表或视图中的单个列上。 SELECT权限,它们可以应用到用户定义函数。 INSERT和DELETE 语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。 EXECUTE语句权限,即执行存储过程和函数的权限。,授予对象权限,GRANT ALL PRIVILEGES | permission_list ( column_list ) ON table | view | ON table | view

15、 ( column_list ) | ON stored_procedure | ON user_defined_function TO name_list WITH GRANT OPTION AS group | role ,查询授权,使用系统存储过程sp_helprotect查询授权的情况,收回权限,收回语句授权 REVOKE ALL | statement_list FROM name_list 收回对象授权 REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission_list ( column_list ) ON table | view |

16、 ON table | view ( column_list ) | ON stored_procedure | ON user_defined_function FROM name_list CASCADE AS group | role ,禁止权限,禁止语句权限 DENY ALL | statement_list TO name_list 禁止对象权限 DENY ALL PRIVILEGES | permission_list ( column_list ) ON table | view | ON table | view ( column_list ) | ON stored_proc

17、edure | ON user_defined_function TO name_list CASCADE,角色与存取控制,系统管理员或数据库管理员可以按层次定义角色,并为角色定义权限,例如定义角色A、B、C、D和E,角色之间的权限关系是ABCDE;然后为不同级别的用户指定不同的角色;从而达到按层次管理数据的目的。,其他安全问题,数据加密 审计 统计数据库 用户定义的安全性措施,数据加密,数据加密标准DES 公开密钥加密体制 RSA,审计,用户管理和权限控制解决了非法用户不能通过合法途径接触数据的问题,但是对合法用户的使用没有任何监督能力。任何时候都不能排除有失职和渎职现象的发生,为此需要有一

18、种方式可以记录下对数据库的所有操作活动和轨迹,这种功能称为审计(Audit)。 系统管理员(或数据库管理员)可以通过审计日志审计、跟踪所有用户对数据库的操作活动,可以确定哪些客户、什么时间、进行了哪些操作等,从而为“合法”的“意外”安全问题提供保障。,统计数据库,在有些数据库应用中只允许查询统计信息而不允许查询明细信息,提供这类服务的数据库称为统计数据库。在统计数据库中存在着特殊的安全问题,即可能存在着隐蔽的信息通道,使得可以从合法的查询中推导出不合法的信息。 综合信息总是带有原始信息的痕迹,利用足够的综合信息总能推导出原始信息。也就是说,统计数据库不管采取什么样的安全手段,总可以从综合信息得

19、到原始信息,但是好的技术可以使恶意用户付出足够高的代价,从而自愿放弃恶意的攻击。,用户定义的安全性措施,除了利用数据库管理系统提供的安全功能外,还可以使用触发器定义一些用户级的安全性措施。例如,最典型的用户定义安全性控制是,可以规定用户只在指定的时间允许对表进行更新操作。,用户定义的安全性措施,CREATE TRIGGER secure_wh ON 仓库 FOR INSERT,DELETE,UPDATE AS IF DATENAME(weekday, getdate()=星期六 OR DATENAME(weekday, getdate()=星期日 OR (convert(INT,DATENAME(hour, getdate() NOT BETWEEN 9 AND 17) BEGIN RAISERROR (只许在工作时间操作!, 16, 1) ROLLBACK TRANSACTION END,【本章小节】,数据库安全控制问题的核心是身份识别,通过用户管理和权限管理实现对数据库的安全管理。 数据加密 审计 统计数据库,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1