第12章_数据库的安全管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第12章数据库的安全管理本章内容12.1事务12.2SQLServer的安全机制12.3SQLServer的权限管理12.1事务第11章数据库的安全管理12.1.1事务特性12.1.2事务管理12.1事务第11章数据库的安全管理事务是作为单个逻辑工作单元执行的一系列操作。事务处理可以确保只有在事务性单元内的所有操作都成功完成的情况下,才会永久更新面向数据的资源。通过将一组相关操作组合为一个或者全部成功或者全部失败的单元,可以简化错误恢复并使应用程序更加可靠。12.1.1事务特性第11章数据库的安全管理每一个事务都具有原子性、一致性、隔离性和持久性,也称为事务的ACID属性。(1)原子性(2)一致性(3)隔离性(4)持久性12.1.1事务管理第11章数据库的安全管理应用程序主要通过指定事务启动和结束的时间来控制事务。可以使用Transact-SQL语句或数据库应用程序编程接口(API)函数来指定这些时间。系统还必须能够正确处理那些在事务完成之前便终止事务的错误1.事务类型第11章数据库的安全管理在SQLServer中有三种事务类型,分别是隐式事务、显式事务、自动提交事务,缺省为自动提交。(1)自动提交事务自动提交事务是指对于用户发出的每条Transact-SQL语句,SQLServer都会自动开始一个SQLServer事务,并且在执行后自动进行提交操作来完成这个事务,也可以说在这种事务模式下,一个Transact-SQL语句就是一个事务。第11章数据库的安全管理(2)显式事务显式事务是指在自动提交模式下以BEGINTRANSACTION开始一个SQLServer事务,以COMMIT或ROLLBACK结束一个SQLServer事务,以Commit结束事务是把SQLServer事务中的修改永久化,即使这时发生断电这样的故障。(3)隐式事务隐式事务是指在当前会话中用SETIMPLICIT_TRANSACTIONSON命令设置的事务类型,这时任何DML语句(DELETE、UPDATE、INSERT)都会开始一个事务,而事务的结束也是用COMMIT或ROLLBACK。2.启动和技术事务第11章数据库的安全管理使用API函数和Transact-SQL语句,可以在SQLServerDatabaseEngine实例中将事务作为显式、自动提交或隐式事务启动和结束。(1)显式事务显式事务就是可以显式地在其中定义事务的开始和结束的事务。BEGINTRANSACTION:标记显式连接事务的起始点。COMMITTRANSACTION或COMMITWORK:如果没有遇到错误,可使用该语句成功地结束事务ROLLBACKTRANSACTION或ROLLBACKWORK:用来清除遇到错误的事务。(2)自动提交模式第11章数据库的安全管理自动提交模式是SQLServerDatabaseEngine的默认事务管理模式。每个Transact-SQL语句在完成时,都被提交或回滚。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。只要没有显式事务或隐式事务覆盖自动提交模式,与数据库引擎实例的连接就以此默认模式操作。(3)隐式事务第11章数据库的安全管理当连接以隐式事务模式进行操作时,SQLServerDatabaseEngine实例将在提交或回滚当前事务后自动启动新事务。无需描述事务的开始,只需提交或回滚每个事务。隐式事务模式生成连续的事务链。3.事务处理过程中的错误第11章数据库的安全管理如果某个错误使事务无法成功完成,SQLServer会自动回滚该事务,并释放该事务占用的所有资源。如果客户端与数据库引擎实例的网络连接中断了,那么当网络向实例通知该中断后,该连接的所有未完成事务均会被回滚。如果客户端应用程序失败或客户机崩溃或重新启动,也会中断连接,而且当网络向数据库引擎实例通知该中断后,该实例会回滚所有未完成的连接。如果客户端从该应用程序注销,所有未完成的事务也会被回滚。12.2SQLServer的安全机制第11章数据库的安全管理12.2.1安全机制级别12.2.2主体12.2.3SQLServer中的身份验证12.2.4数据库用户12.2.5角色12.2.1安全机制级别第11章数据库的安全管理SQLServer2005的安全机制分为四级,其中第一层和第二层属于验证过程,第三层和第四层属于授权过程12.2.2主体第11章数据库的安全管理主体”是指可以请求SQLServer资源的个体、组和过程。与SQLServer授权模型的其他组件一样,主体也可以按层次结构排列。各级别的主体包含的内容如下。12.2.3SQLServer中的身份验证11.1SQLServer的安全机制SQLServer的安全性管理是建立在身份验证和访问许可两者机制上的。身份验证是确定登录SQLServer的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQLServer的权限。通过认证的用户必须获取访问数据库的权限,才能对数据库进行权限许可下的操作。1.SQLServer身份验证模式类型11.1.1身份验证(1)Windows身份验证模式该模式使用Windows操作系统的安全机制验证用户身份,只要用户能够通过Windows用户账号验证,即可连接到SQLServer而不再进行身份验证。这种模式只适用于能够提供有效身份验证的Windows操作系统。(2)混合身份验证模式11.1.1身份验证在该模式下,Windows身份验证和SQLserver验证两种模式都可用。对于可信任连接用户(由Windows验证),系统直接采用Windows的身份验证机制,否则SQLServer将通过账号的存在性和密码的匹配性自行进行验证,即采用SQLServer身份验证模式。2身份验证模式的设置11.1.1身份验证在该模式下,Windows身份验证和SQLserver验证两种模式都可用。对于可信任连接用户(由Windows验证),系统直接采用Windows的身份验证机制,否则SQLServer将通过账号的存在性和密码的匹配性自行进行验证,即采用SQLServer身份验证模式。身份验证内容11.1.1身份验证包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据库。11.1.2身份验证模式的设置11.1SQLServer的安全机制1.方法一:打开SQLServer管理平台,在“已注册的服务器”子窗口中设置验证模式。2.方法二在SQLServer管理平台的对象资源管理器中,右键单击服务器,在弹出的快捷菜单中选择“属性”,打开如图所示的“服务器属性”窗口。11.1.2身份验证模式的设置11.2登录账号管理3.创建登录账户创建登录账户的方法有两种:一种是从Windows用户或组中创建登录账户一种是创建新的SQLServer登录账户。11.2.1创建登录账户1.通过Windows身份验证创建登录(1)创建Windows用户①以管理员身份登录到Windows2003,选择“开始→程序→管理工具→计算机管理”选项。11.2.1创建登录账户②展开“本地用户和组”文件夹,选择“用户”图标,单击鼠标右键,在快捷菜单中选择“新用户”项,打开“新用户”对话框,输入用户名、密码,单击“创建”按钮,然后单击“关闭”按钮完成创建。11.2.1创建登录账户(2)使用企业管理器将Windows2003账号加入到SQLServer中,创建SQLServer登录①启动SQLServer管理平台,在对象资源管理器中分别展开“服务器”→“安全性”→“登录名”。②右击“登录名”,在弹出的快捷菜单上选择“新建登录名”,进行“登录名-新建”对话框。11.2.1创建登录账户③在“登录名-新建”对话框选择Windows验证模式,登录名通过单击“搜索”按钮自动产生,单击“搜索”按钮后出现“选择用户或组”对话框,在对象名称框中直接输入名称或单击“高级”按钮后查找用户或组名称来完成输入。11.2.1创建登录账户④单击“确定”按钮,一个Windows组或用户即可增加到SQLServer登录帐户中去。11.2.1创建登录账户对于已经创建的Windows用户或组,可以使用系统存储过程sp_grantlogin授予其登录SQLServer的权限。其语法格式如下:sp_grantlogin[@loginame=]'login'其中,[@loginame=]'login'为要添加的Windows用户或组的名称,名称格式为“域名\计算机名\用户名”。11.2.1创建登录账户如果使用混合验证模式或不通过Windows用户或用户组连接SQLServer,则需要在SQLServer下创建用户登录权限,使用户得以连接使用SQLServer身份验证的SQLServer实例。2.创建SQLServer登录11.2.1创建登录账户在SQLServer管理平台中创建SQLServer登录帐户的具体步骤类似于“将Windows2003帐号映射到SQLServer中”的操作方法。只是要选择SQLServer验证模式,并输入登录帐户名称、密码及确认密码。其他选项卡的设置操作类似,最后单击“确定”按钮,即增加了一个新的登录帐户。(1)使用SQLServer管理平台创建登录帐户11.2.1创建登录账户(2)使用系统存储过程sp_addlongin创建登录sp_addlogin语法格式如下:sp_addlogin[@loginame=]'login'[,[@passwd=]'password'][,[@defdb=]'database'][,[@deflanguage=]'language'][,[@sid=]sid][,[@encryptopt=]'encryption_option']11.2登录账号管理4.删除登录账户当某一登录帐户不再使用时,应该将其删除,以保证数据库的安全性和保密性。删除登录帐户可以通过管理平台和Transact-SQL语句来进行。1.使用SQLServer管理平台删除登录其操作步骤如下:(1)启动SQLServer管理平台,在对象资源管理器中分别展开“服务器”→“安全性”→“登录名”。(2)在“登录名”详细列表中鼠标右键单击要删除的用户,在弹出的快捷菜单中选择“删除”命令,确定删除。11.2登录账号管理删除登录账号有两种形式:删除Windows用户或组登录和删除SQLServer登录。(1)删除Windows用户或组登录sp_revokelogin的语法格式为:sp_revokelogin[@liginame=]'login'其中,[@liginame=]'login'为Windows用户或组的名称。2.使用Transact-SQL语句删除登录账号11.2登录账号管理使用sp_droplogin可以删除SQLServer登录。其语法格式如下:sp_droplogin[@loginame=]'login‘例11-8使用系统存储过程sp_droplogin删除SQLServer登录账号ZG001。EXECsp_droplogin'ZG001'(2)删除SQLServer登录12.2.4数据库用户的管理第11章数据库的安全管理1.使用SQLServer管理平台创建数据库用户其操作步骤如下:(1)打开SQLServer管理平台,在其“对象资源管理器”面板中依次展开“服务器”→“数据库”→“安全性”节点。右击选择其下的“用户”对象,在打开的菜单中选择“新建用户”命令,打开的“数据库用户-新建”窗口。11.3数据库用户的管理(2)在打开的“数据库用户-新建”窗口中,单击“登录名”右边的“”命令可搜索登录用户或直接在文本框中输入用户的登录名,在用户名栏中输入用户名称,用户名可以与登录名不一样。(3)在“此用户拥有的架构”和“数据库角色成员身份”区域选择此用户拥有的架构和加入的角色,选中角色名前的复选框即可。(4)单击“新建用户”窗口的“确定”按钮,数据库用户建立完成。2.使用系统存储过程创建数据库用户SQLServer

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功