您好,欢迎访问三七文档
数据库原理与应用数据库系统概论第四版王珊萨师煊第四章数据库安全性数据库的安全机制SQLServer中的安全机制4.1计算机安全性概述数据库安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。数据库的安全性与计算机的安全性密切相关。1、计算机系统的三类安全性问题(1)技术安全(硬件、软件、数据)(2)管理安全(设备、环境)(3)政策法律4.1计算机安全性概述(续)信息安全标准的发展史TCSEC/TDI安全级别划分安全级别定义A1验证设计(VerifiedDesign)B3安全域(SecurityDomains)B2结构化保护(StructuralProtection)B1标记安全保护(LabeledSecurityProtection)C2受控的存取保护(ControlledAccessProtection)C1自主安全保护(DiscretionarySecurityProtection)D最小保护(MinimalProtection)CC评估保证级划分评估保证级定义TCSEC安全级别(近似相当)EAL1功能测试(functionallytested)EAL2结构测试(structurallytested)C1EAL3系统地测试和检查(methodicallytestedandchecked)C2EAL4系统地设计、测试和复查(methodicallydesigned,tested,andreviewed)B1EAL5半形式化设计和测试(semiformallydesignedandtested)B2EAL6半形式化验证的设计和测试(semiformallyverifieddesignandtested)B3EAL7形式化验证的设计和测试(formallyverifieddesignandtested)A14.2数据库安全性控制授权机制约束机制审计触发器存储过程用户身份验证操作系统数据库服务器(RDBMS)视图4.2数据库安全性控制(续)1、用户标识与鉴别用户标识用户名(UserName)或用户标识号(UID)口令系统核对口令以鉴别用户身份用户名和口令易被窃取,用户可以预先约定好一个计算过程或者函数,用以鉴别用户身份。4.2数据库安全性控制(续)2、存取控制数据的访问需要获得相应的权限(1)存取控制的两个组成部分•定义用户权限:并将用户权限登记到数据字典中,称做安全规则或授权规则•合法权限检查:根据安全规则进行合法权限检查4.2数据库安全性控制(续)2、存取控制(2)存取控制的方法•自主存取控制方法(DAC)用户对不同数据对象拥有不同的存取权限。不同的用户对同一个对象也有不同的权限。用户可以将其拥有的权限授予其他用户。•强制存取控制方法(MAC)每一个数据对象标以一定的密级。每一个用户被授予某一个级别的许可证对于任一个对象,只有具有合法许可证的用户才可以存取。4.2数据库安全性控制(续)3、自主存取控制方法(DAC)(3)授权(GRANT)定义存取权限GRANT权限,[权限,...]ON对象[,...]TO用户[,用户,...][WITHGRANTOPTION]获得权限的用户还可以将权限授予给其他用户4.2数据库安全性控制(续)3、自主存取控制方法(DAC)(4)收回权限(REVOKE)REVOKE权限,[权限,...]ON对象[,...]FROM用户[,用户,...][CASCADE|RESTRICT]级联收回用户传播的权限若用户将权限传播,则禁止收回4.2数据库安全性控制(续)4、强制存取控制方法(MAC)符合B1级的访问控制方法。主体许可证级别2341客体密级数据库A1表B2表C2视图D3列S4……存取规则:1、仅当主体许可证级别=客体密级时,可以进行读取2、当主体许可证级别=客体密级时,才可以对客体进行写入4.3视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护。例:建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明在视图上进一步定义存取权限GRANTSELECTONCS_StudentTO王平;GRANTALLPRIVILIGESONCS_StudentTO张明;4.4审计(AUDIT)1、审计的意义审计就是把用户对数据库的所有操作自动记录下来放入审计日志(AuditLog)。审计功能是DBMS达到C2以上安全级别必不可少的一项指标。4.4审计(AUDIT)(续)2、SQLServer中的审计可以启用SQL事件探查器。4.5数据加密加密方案需要包含下列组件和概念的密码系统•编码数据(称为明文)的加密密钥•将明文更改为编码文本(称为密文)的加密算法•解码密文的解码密钥•将密文转换回原始明文的解密算法明文明文发送者接收者加密密钥加密算法解密算法解密密钥密文密文4.7SQLServer的安全机制•操作系统•SQLServer•SQLServer数据库•SQLServer数据库对象SQLServer采用4个等级的安全验证:SQLServer提供了两种不同的方法来验证用户进入服务器。用户可以根据自己的网络配置决定使用其中一种。Windows验证SQLServer验证一、设置安全认证模式(1)展开【服务器组】、右击服务器(2)单击【属性】,弹出【SQLServer属性】,单击【安全性】(3)在【身份验证】中【仅Windows]或【SQLServer和Windows】选项。1用企业管理器查看登录账户(1)展开【服务器组】、服务器、【安全性】。(2)单击【登录】,在详细信息窗格中显示登录账号信息。登录账户(LoginName)是指用户登录(连接)SQLServer服务器的账户和密码,是进入数据库服务器的第一张通行证。2特殊登录账户sa:SQLServer数据库服务器系统管理员登录账户。不可删除、不能更改。该账户拥有最高的管理权限,不要轻易使用sa。BUILTIN\Administrators:一个Windows组账户,凡属于该组的Windows账户都可作为SQLServer的登录账户,可删除。二、服务器登录帐户增加登录账户1)展开【服务器组】、服务器、【安全性】。2)右击【登录】,选择【新建登录(L)…】,弹出【SQLServer登录属性–新建登录】。3)在【确认密码】对话框,填写【确认新密码】,并单击【确定】按钮。2用存储过程sp_addlogin创建登录账户语法:sp_addlogin‘登录名’[,‘密码’][,'默认数据库'][,'默认语言']1用企业管理器管理登录账户把某些用户设置成某一角色,这些用户称为该角色的成员。角色包含两方面的内涵,一是角色的成员,二是角色的权限。因此,角色可理解为岗位或职务,通过任免指定职务的人员,通过赋予或撤销增减职务的权限。SQLServer2000有两种类型的预定义角色:固定服务器角色(ServerRole)和固定数据库角色。这些角色是预先定义的,角色的种类和每个角色的权限都是固定的、不可更改或删除,只允许为其添加或删除成员(public角色除外,其权限可以增减,其成员是数据库中所有的数据库用户)。三、服务器的角色固定服务器角色固定服务器角色权力sysadmin系统管理员进行任何活动。serveradmin服务器管理员配置服务器范围的设置。setupadmin设置管理员添加和删除链接服务器,并执行某些系统存储过程(如sp_serveroption)。securityadmin安全管理员登录账号、用户、角色、权限等管理。processadmin进程管理员进程管理。dbcreator数据库创建者创建和改变数据库。diskadmin磁盘管理员管理磁盘文件。bulkadmin执行BULKINSERT语句。1.用企业管理器查看固定服务器角色及其成员2.用存储过程sp_helpsrvrole查看固定服务器角色语法:sp_helpsrvrole['固定服务器角色名']3.用存储过程sp_helpsrvrolemember查看服务器角色成员语法:sp_helpsrvrolemember['固定服务器角色名']固定服务器角色向固定服务器角色中添删成员1.用企业管理器向固定服务器角色中添加或删除成员2.用sp_addsrvrolemember添加成员3.用sp_dropsrvrolemember删除成员sp_addsrvrolemember'登录用户名','固定服务器角色名'sp_dropsrvrolemember'登录用户名','固定服务器角色名'数据库用户(dbAccess):对于每个要求访问数据库的登录账户,必须在要访问的数据库中建立该数据库的访问账户,且与其登录账户链接关联,才可进入该数据库访问(注:该数据库中有guest数据库用户或该登录账户加入相应固定数据库角色除外)。否则,该登录账户就无法进入该数据库访问。这个数据库访问账户就是数据库用户(dbAccess)。四、数据库的用户(1)展开【服务器组】,展开要查看的服务器名。(2)展开【服务器】,展开【student】数据库。(3)右击【用户】,单击【新建数据库用户….】菜单,弹出【数据库用户属性——新建用户】对话框。(4)从登录名下拉列表框中选择一个登录账号。(5)在用户名框中输入数据库用户名。1.使用企业管理器添加数据库用户sp_grantdbaccess'登录账户名','数据库用户名'2.使用T-SQL语句添加数据库用户sp_revokedbaccess'数据库用户名'3.使用sp_revokedbaccess删除数据库用户管理数据库的用户数据库角色(dbRole)是定义在数据库级上,保存在各自数据库的系统表sysusers之中,作用在各自的数据库之内,同样包含两方面的内涵,一是角色的成员,二是角色的权限。数据库角色的成员是数据库用户(dbAccess)。数据库角色分为固定数据库角色、用户自定义角色和应用程序角色。五、数据库的角色固定数据库角色是系统预定义在数据库级上管理的角色,除public角色外,角色的种类和每个角色的权限都是固定的、不可更改或删除,只允许为其添加或删除成员。每个数据库都有10个固定数据库角色。public是一个特殊的数据库角色,数据库中的每个数据库用户都自动是此角色的成员,最初创建只有本数据库的系统表和系统视图的select权限。可以通过授予、拒绝或撤销方法增减权限,提供数据库中所有用户的默认权限。查看固定数据库角色列表:展开【服务器组】、服务器、【数据库】、数据库,单击【角色】,在右侧详细信息窗格中列出角色列表。查询分析器中,执行sp_helpdbfixedrole五、数据库的角色(续)角色描述Public所有人db_owner所有者,在数据库中拥有全部权限db_accessadmin用户管理者,可以添加或删除用户IDdb_securityadmin安全管理者,管理权限、所有权、角色和成员资格db_ddladmin可以发出ALLDDL(除GRANT、REVOKE、DENY)db_backupoperator备份操作者。db_datareader数据读者,可以读本库内任何表的数据db_datawriter数据写者,可以插入、删除、修改本数据库内任何表中的数据。db_denydatareader不能读库内任何表中任何数据用户。db_denydatawriter不能改库内任何表中任何数据用户。固定数据库的角色(1)展开[服务器组]、服务器、[数据库]、数据库;(2)单击[角色],在右侧详细信息窗格中选定角色右击,单击[属性],弹出[数据库角色属性]对话框(3)单击[添加…]添加角色成员,选中成员单击[删除]删除角色成员。1.使用企业管理器管理数据库角色成员语法:sp_addrolemember'数据库角色','安全账户'功能:为数据库角色添加成员。语法:sp_droprolemember'数据库角色','安全账户'功能:从数据库角色中删除成员。2.使用T-S
本文标题:数据库安全性
链接地址:https://www.777doc.com/doc-3981870 .html