数据库第07章安全性.ppt_第1页
数据库第07章安全性.ppt_第2页
数据库第07章安全性.ppt_第3页
数据库第07章安全性.ppt_第4页
数据库第07章安全性.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章 安全性,安全性概述 用户管理和角色管理 权限管理 其他安全问题,安全性措施的层次,物理层,重要的计算机系统必须在物理上受到保护,以防止入侵者强行进入或暗中潜入。 人员层,对用户的授权要严格掌握,以减少授权用户渎职、受贿,从而为入侵者提供访问的机会。 操作系统层,要进入数据库系统,首先要经过操作系统,所以如果操作系统的安全性能差,也会对数据库造成威胁。 网络层,由于几乎所有网络上的数据库系统都允许通过终端或网络进行远程访问,所以网络的安全和操作系统的安全一样重要,网络安全了,无疑会对数据库的安全提供一个保障。 数据库系统层,数据库系统应该有完善的访问控制机制,允许查询和允许修改有严格的界限,尽量保证不出现越权的操作。,数据库管理系统的安全功能,安全性控制是数据库管理员(或系统管理员)的一个重要任务,他要充分利用数据库管理系统的安全功能,保证数据库和数据库中数据的安全。 安全系统的核心问题是身份识别。 几个概念 用户 权限 用户组 角色,自主存取控制,自主存取控制就是由用户(如数据库管理员)自主控制对数据库对象的操作权限,哪些用户可以对哪些对象、进行哪些操作,完全取决于用户之间的授权。任何用户只要需要,就有可能获得对任何对象的操作权限。这种存取控制方式非常灵活,但有时也容易失控。目前大多数数据库管理系统都支持的是自主存取控制方式。,强制存取控制,强制存取控制的思路是,为每一个数据库对象标以一定的密级(Classification level),对每一个用户都确定一个许可级别(Clearance level)。如密级可以分为绝密、机密、保密、秘密、公开等若干级别;而用户可以划分为一级用户(可以操作所有数据)、二级用户(可以操作除绝密以外的所有数据)、三级用户等。 强制存取控制本质上具有分层的特点,通常具有静态的、严格的分层结构,与现实世界的层次管理也相吻合。这种强制存取控制特别适合层次严明的军方和政府等数据管理。,SQL Server的身份验证模式,SQL Server提供了三种身份验证模式或安全管理模式,即标准模式、集成模式和混合模式。在Windows NT或Windows 2000上使用集成模式或混合模式,在Windows 98(或Millennium)上使用标准模式。,标准身份验证模式,实际上,一般的数据库管理系统都只提供标准身份验证模式,在这种模式下,由数据库管理系统独立来管理自己的数据库安全。数据库管理系统把用户登录的ID号和口令存储在特定的系统表中,当用户试图登录到数据库系统时,数据库管理系统查询有效的登录ID和口令,以决定是否允许用户登录。 一般的数据库管理系统只有标准登录模式,所以很多SQL Server的用户也习惯使用标准身份验证模式,因为他们熟悉登录和密码功能。对于连接到Windows客户端以外的其它客户端,可能也必须使用标准身份验证。,集成身份验证模式,集成身份验证模式也称为Windows身份验证模式,用户通过Windows NT或 Windows 2000(以下简称Windows)的身份验证后则自动进行SQL Server身份验证。即当用户通过Windows用户账户进行连接时,SQL Server通过回叫Windows以获得信息,重新验证账户名和密码。,SQL Server的安全体系,图7-1 SQL Server安全体系,混合身份验证模式,混合模式使用户得以使用 Windows身份验证或SQL Server身份验证与SQL Server实例连接 。,混合身份验证模式的登录决策过程,用户管理和角色管理,用户的分类 登录用户和数据库用户 用户管理 角色管理 SQL Server的预定义角色,用户的分类,系统管理员用户 数据库管理员用户 数据库对象用户 数据库访问用户,图7-1 SQL Server安全体系,登录用户和数据库用户,登录用户(login user) 数据库用户(database user),用户管理,登录用户的管理 系统管理员的工作 建立新的登录用户 修改登录密码 删除登录用户 数据库用户的管理 数据库管理员的工作 授权其他登录用户为数据库的用户 取消某个登录用户为数据库的用户,建立新的登录用户,sp_addlogin loginname= login_id ,passwd=passwd ,defdb=defdb ,deflanguage=deflanguage ,sid=sid ,encryptopt =encryption_option,修改登录密码,sp_password old = old_password , new = new_password , loginame = login ,删除登录用户,sp_droplogin loginame = login,授权登录用户为当前数据库用户,sp_grantdbaccess loginame = login ,name_in_db = name_in_db,从当前数据库中删除用户,sp_revokedbaccess name_in_db = name,角色管理,用户组和角色 定义角色 为用户指定角色 取消用户的角色 删除角色,定义角色,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获得各种系统管理员角色的描述 使用sp_srvrolepermission得到每种系统管理员角色的特定权限(可以执行的命令、系统存储过程或说明) 数据库预定义角色 使用sp_helpdbfixedrole获得数据库上各种预定义角色的描述 使用sp_dbfixedrolepermission得到每种数据库预定义角色的特定权限(可以执行的命令、系统存储过程或说明),public角色,public角色是一个特殊的数据库角色,每个数据库用户都是该角色的成员。public角色具有如下特点: public角色自动获得数据库中用户的所有默认权限; 不需要、也无法将用户指派给public角色,因为默认情况下所有用户都属于该角色; 每个数据库(包括所有系统数据库和所有用户数据库)都有public角色; 不可以删除public角色。,系统预定义角色,sysadmin:具有系统管理员全部权限的角色。 serveradmin:负责配置数据库服务器的设置。 setupadmin:负责添加和删除链接的服务器。 securityadmin:负责管理服务器的登录。 processadmin:负责管理在SQL Server实例中运行的进程。 dbcreator:负责创建和改变数据库。 bulkadmin:可以执行BULK INSERT语句(数据库数据的装载)。,数据库预定义角色,db_owner:在数据库中有全部权限,即具有数据库管理员全部权限的角色。 db_accessadmin:负责数据库用户的管理。 db_securityadmin:负责数据库的安全管理,如负责权限管理、角色和角色成员资格管理等。 db_ddladmin:主要负责数据库的完整性和一致性检查及管理。 db_backupoperator:主要负责数据库的备份。 db_datareader:可以查询数据库中任何用户表中的所有数据。 db_datawriter:可以更改数据库中任何用户表中的所有数据。 db_denydatareader:不能查询数据库中任何用户表中的任何数据。 db_denydatawriter:不能更改数据库中任何用户表中的任何数据。,权限管理,授予权限 授予语句权限 授予对象权限 查询授权 收回权限 禁止权限 角色与存取控制,授予语句权限,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,授予对象权限,处理数据或执行存储过程时需要有相应对象的操作或执行权限,这些权限可以划分为: SELECT、INSERT、UPDATE和DELETE语句权限,它们可以应用到整个表或视图上。 SELECT和UPDATE 语句权限,它们可以有选择性地应用到表或视图中的单个列上。 SELECT权限,它们可以应用到用户定义函数。 INSERT和DELETE 语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。 EXECUTE语句权限,即执行存储过程和函数的权限。,授予对象权限,GRANT ALL PRIVILEGES | permission_list ( column_list ) ON table | view | ON table | view ( 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 | 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_procedure | ON user_defined_function TO name_list CASCADE,角色与存取控制,系统管理员或数据库管理员可以按层次定义角色,并为角色定义权限,例如定义角色A、B、C、D和E,角色之间的权限关系是ABCDE;然后为不同级别的用户指定不同的角色;从而达到按层次管理数据的目的。,其他安全问题,数据加密 审计 统计数据库 用户定义的安全性措施,数据加密,数据加密标准DES 公开密钥加密体制 RSA,审计,用户管理和权限控制解决了非法用户不能通过合法途径接触数据的问题,但是对合法用户的使用没有任何监督能力。任何时候都不能排除有失职和渎职现象的发生,为此需要有一种方式可以记录下对数据库的所有操作活动和轨迹,这种功能称为审计(Audit)。 系统管理员(或数据库管理员)可以通过审计日志审计、跟踪所有用户对数据库的操作活动,可以确定哪些客户、什么时间、进行了哪些操作等,从而为“合法”的“意外”安全问题提供保障。,统计数据库,在有些数据库应用中只允许查询统计信息而不允许查询明细信息,提供这类服务的数据库称为统计数据库。在统计数据库中存在着特殊的安全问题,即可能存在着隐蔽的信息通道,使得可以从合法的查询中推导出不合法的信息。 综合信息总是带有原始信息的痕迹,利用足够的综合信息总能推导出原始信息。也就是说,统计数据库不管采取什么样的安全手段,总可以从综合信息得到原始信息,但是好的技术可以使恶意用户付出足够高的代价,从而自愿放弃恶意的攻击。,用户定义的安全性措施,除了利用数据库管理系统提供的安全功能外,还可以使用触发器定义一些用户级的安全性措施。例如,最典型的用户定义安全性控制是,可以规定用户只在指定的时间允许对表进行更新操作。,用户定义的安全性措施,CREATE TRIGGER secure_wh ON 仓库 FOR IN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论