资源简介 (共26张PPT)数据库的安全性控制和完整性控制第6章目录01数据库的安全性控制02数据库的完整性控制本章主要内容如今,世界上大量的信息系统均使用了数据库技术,数据在信息系统中的价值变得越来越重要,数据库系统的安全和其对数据的保护成为一个越来越值得关注的方面。数据库系统中的数据由数据库管理系统统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,需要对数据库实施保护,使其免受某些因素对其中数据的破坏。数据库的数据保护主要是指数据库的安全性控制和完整性控制。数据库的安全性和完整性是两个既有联系又不完全相同的概念。数据库的安全性控制第6章016.1.1数据库的安全性的含义数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。在数据库系统中,大量数据集中存放,而且被众多使用者直接共享,从而导致数据库的安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要技术指标之一。6.1.2 数据库安全性控制的方法数据库的安全性控制是指通过一定的措施和设置,尽量拒绝对数据库的非法访问。用户非法使用数据库可以有很多种情况,例如,编写合法程序绕过数据库管理系统及其授权机制;编写应用程序执行非授权操作;通过多次合法查询数据库,从中推导出一些保密数据。安全保护策略就是要以最小的代价防止对数据的非法访问,层层设置安全措施, 数据安全模型如图所示。6.1.2 数据库安全性控制的方法安全性控制的一般方法有:用户身份鉴别用户存取权限控制视图机制数据加密审计(Audit)6.1.2 数据库安全性控制的方法1.用户身份鉴别:数据库管理系统所提供的最外层的安全保护措施为用户身份鉴别。其原理是每个用户在系统中都有一个用户标识。用户身份鉴别通常是多种方法相结合使用以提高安全性,常见的用户身份鉴别方法有以下几种。(1)静态口令鉴别(2)动态口令鉴别6.1.2 数据库安全性控制的方法2.用户存取权限控制:用户存取权限指的是对于不同种类的数据对象允许不同类别的用户对其执行的操作权限。在数据库管理系统中,用户只能对其有权存取的数据执行相关的操作。存取控制机制主要包括定义用户权限和合法权限检查两部分。(1)定义用户权限,并将用户权限登记到数据字典中(2)合法权限检查6.1.2 数据库安全性控制的方法3.视图机制:为保证数据库的安全,可以为不同种类的用户定义不同的视图,把可操作的数据对象限制在某一范围内。6.1.2 数据库安全性控制的方法4 数据加密对于一些具有高度保密性的数据,例如银行金融数据、战争军事数据、国家机关机密数据等,如果采取前面介绍的几种数据库安全措施,只能防止保密数据从数据库系统中被窃取,并不能防止通过不正常渠道对这些数据的非法访问。因此,数据加密是防止数据库的数据在存储和传输中失密的有效手段。6.1.2 数据库安全性控制的方法5. 审计前面介绍的数据库安全措施,都可对用户操作进行限制,从而保证数据访问在规定的安全范围内,但是任何系统的安全保护措施都不是完美的,别有用心的人总是想方设法打破控制。而审计功能则通过把用户对数据库的所有操作记录放入审计日志中的方法来保证数据安全。通过AUDIT语句设置审计功能,通过NOAUDIT语句则可以取消审计功能。6.1.3 SQL Server的安全性机制 在SQL Server 2019管理系统的自主存取控制模式中,用户访问数据库数据都要经过三层认证过程,分别为服务器安全管理、数据库安全管理和数据库对象的访问权限管理。第一层安全性是SQL Server服务器级别的安全性,确认用户是否为数据库服务器的合法账户(具有正确的登录名和密码)。第二层安全性是数据库级别的安全性,用户在登录数据库服务器之后,是不能访问任何用户数据库的,用户将接受第二层安全性的检查,即确认用户是否为要访问数据库的合法用户(是数据库用户)。第三层安全性是数据库对象级别的安全性,用户通过了前两层的安全性验证之后,对数据库中的用户数据还是没有任何的操作权限,用户要想访问数据库中的对象,必须事先被赋予相应的访问权限,否则系统将拒绝访问。6.1.4 SQL Server的身份验证模式SQL Server 2019的安全权限是基于表示用户身份的登录标识符的,登录标识符就是控制访问SQL Server数据库服务器的登录名。SQL Server 2019支持两类登录名:一类是由SQL Server自身负责身份验证的登录名(即SQL授权用户);另一类是登录到SQL Server的Windows网络用户,可以是组账户或用户账户。根据不同的登录名类型,SQL Server 2019相应地提供了两种身份验证模式:Windows身份验证模式和混合身份验证模式。6.1.4 SQL Server的身份验证模式1. Windows身份验证模式微软公司将SQL Server与Windows操作系统的用户身份验证进行了绑定,提供了以Windows操作系统用户身份登录SQL Server的方式,也就是SQL Server将用户的身份验证交给了Windows操作系统来完成。当使用Windows身份验证模式时,用户必须首先登录Windows操作系统,然后登录SQL Server。用户登录SQL Server时,无须再提供登录名和密码,系统会从用户登录到Windows操作系统时提供的用户名和密码中查找当前用户的登录信息,以判断其是否为SQL Server的合法用户。6.1.4 SQL Server的身份验证模式2.混合身份验证模式混合身份验证模式表示SQL Server允许Windows授权用户和SQL授权用户登录SQL Server数据库服务器。如果希望允许非Windows操作系统的用户也能登录SQL Server数据库服务器,则应该选择混合身份验证模式。6.1.4 SQL Server的身份验证模式3.设置身份验证模式安装SQL Server过程中可设置身份验证模式,也可以在安装完成之后,在数据库管理系统工具中设置。具体方法如下:在要设置身份验证的SQL Server实例上右击,从弹出的快捷菜单中选择“属性”命令,弹出“服务器属性”窗口,在该窗口左侧的“选择页”上,单击“安全性”标签,然后在显示窗口的“服务器身份验证”部分,可以设置身份验证模式。6.1.5 SQL Server登录账号和服务器角色在SQL Server 2019中,账号有两种:一种是登录服务器使用的登录账号(Login Name),另一种是使用数据库的用户账号(User Name)。在用户具有了登录账号之后,只能连接到SQL Server数据库服务器上,并不具有访问任何用户数据库的权限,只有成为数据库的合法用户才能访问该数据库。6.1.5 SQL Server登录账号和服务器角色1.建立登录账号使用数据库管理系统工具建立登录账号的步骤如下。(1)在数据库管理系统的对象资源管理器中,依次展开“安全性”→“登录名”选项,右击,在弹出的快捷菜单中选择“新建登录名”命令。6.1.5 SQL Server登录账号和服务器角色(2)在“登录名”文本框中输入要创建的登录账号,选择“SQL Server身份验证”命令,输入密码后并取消选中“强制实施密码策略”复选框。6.1.5 SQL Server登录账号和服务器角色(3)在“选择页”列表中选择“服务器角色”命令。可以选择将此登录账号加入某个服务器角色中并具有该角色的权限。public角色将被自动选中,并且不能删除。6.1.5 SQL Server登录账号和服务器角色SQL Server中默认的9种服务器角色及其权限描述服务器角色 权限描述bulkadmin 允许非sysadmin用户运行BULK INSERT语句dbcreator 创建、更改、删除和还原任何数据库diskadmin 管理磁盘文件processadmin 终止SQL Server实例中运行的进程public 每个SQL Server登录账号都属于public服务器角色securityadmin 管理登录名及其属性serveradmin 更改服务器范围的配置选项和关闭服务器setupadmin 添加和删除连接的服务器,并且可以执行某些系统存储过程sysadmin 在服务器中执行任何活动6.1.5 SQL Server登录账号和服务器角色2.修改登录账号修改登录账号的过程如下:在“对象资源管理器”中,展开“安全性”→“登录名”选项,然后右击要修改的登录名,在弹出的快捷菜单中选择“属性”命令,即可打开“登录属性”对话框,接下来就可以对该登录账号进行修改。3.删除登录账号在“对象资源管理器”中,展开“安全性”→“登录名”选项,然后右击要删除的登录名,在弹出的快捷菜单中选择“删除”命令,在出现的“删除对象”对话框中单击“确定”按钮即可删除该登录账号。6.1.6 SQL Server数据库用户账号和数据库角色1.使用数据库管理系统工具建立数据库用户账号当使用一个登录名访问某个数据库时,需要将该登录名映射为该数据库中的合法用户,具体步骤如下。(1)在数据库管理系统工具的“对象资源管理器”中,展开要建立数据库用户的数据库。(2)展开“安全性”选项,在“用户”选项上右击,在弹出的快捷菜单上选择“新建用户”命令。6.1.6 SQL Server数据库用户账号和数据库角色用户名:输入要创建的数据库用户名。登录名:输入与该数据库用户对应的登录账号,也可以通过右边的按钮进行选择。默认架构:输入或选择该数据库用户所属的架构。(3)在“拥有的架构”列表中可以查看和设置该用户拥有的架构。(4)在“成员身份”列表中,可以为该数据库用户选择数据库角色。(5)单击“确定”按钮,即可创建数据库用户账号。6.1.6 SQL Server数据库用户账号和数据库角色2.删除数据库用户账号从当前数据库中删除一个用户,实际就是解除了登录名和数据库用户之间的映射关系,并不影响登录名的存在,删除数据库用户后,用户的登录名仍然存在。 展开更多...... 收起↑ 资源预览