时间:2024-05-04
刘 宁 刘 滔 王 斌/江西建设职业技术学院
SQL Server的安全管理机制
刘 宁 刘 滔 王 斌/江西建设职业技术学院
微软公司的数据库管理系统SQL Server已经在越来越多的管理信息系统中布署,随之而来的数据安全与保护问题也越来越重要。SQL Server对于维护数据库管理系统提供了一系列的管理机制。对于这些管理机制本文作一个概括性的总结,以供读者参考。
SQL Server;安全管理
SQL Server是微软公司开发的一套数据库管理系统,随着微软公司的Windows操作系统在桌面领域的强势布局,以及微软公司的集成开发环境Visual Studio与SQL Server的无缝连接,使得SQL Server的应用极大的丰富,越来越多的管理信息系统在服务器端使用SQL Server。与此同时,数据的安全保护越发的重要,在这一方面,SQL Server提供了诸多的安全管理机制以保障用户的数据安全。
SQL Server的安全模型共有三个层次,分别是服务器安全、数据库安全和数据库对象的访问权限安全。
服务器安全针对服务器实例的账户、配置、设备等方面的安全管理。
数据库安全针对数据库用户、数据库的备份、恢复等功能的管理。
数据库对象的访问权限安全定义用户对数据库中数据对象的引用、数据操作语句的许可权限。
SQL Server有二种身份验证模式,分别为Windows身份验证模式和SQL Server身份验证模式。
Windows身份验证模式指登录SQL SERVER系统的用户身份由Windows系统来进行验证。SQL SERVER身份验证又称为混合验证模式,是指登录SQL SERVER系统时,其身份验证由Windows和SQL SERVER共同进行。
使用Windows身份验证登录SQL SERVER,该登录帐户必须存在于Windows帐户数据库中。管理员使用系统存储过程sp_ grantlogin来允许一个Windows用户或组连接到SQL SERVER,或使用sp_denylogin系统存储过程阻止Windows用户连接到SQL SERVER,以及使用sp_revokelogin系统存储过程删除登录到SQL SERVER的登录条目。
使用SQL SERVER身份验证则必须提供用户名与密码,可使用sp_addlogin系统存储过程来创建新的SQL SERVER登录,或使用sp_droplogin系统存储过程删除SQL SERVER登录。
服务器角色是SQL SERVER服务器安全模型中定义的管理员组,不同的服务器角色具备特定的服务器操作权限,可以为某些用户指定某些服务器角色,使其具备该角色所具备的权限。固定的服务器角色不能增加、修改和删除,但服务器角色所分配的用户可以增加、修改和删除。可使用系统存储过程sp_ addsrvrolemember和sp_dropsrvrolemember对帐户进行固定服务器角色的分配与回收。
当用户安全登录到SQL SERVER服务器后,访问数据库时的安全则是用户的数据库访问权。数据库的访问权通过数据库的用户和登录SQL SERVER服务器的帐户间的关系来实现,是数据库级的安全模型。在每个数据库中创建数据库用户,使之达到指定帐户才能够访问本数据库,可使用系统存储过程sp_ grantdbacceSQL Server来建立登录用户与数据库用户的映射,使用系统存储过程sp_revokedbacceSQL Server解除映射关系。
固定数据库角色存在于每一个数据库中,管理员可以将任何有效的数据库用户添加为固定的数据库角色成员,每个成员获得该角色权限,用户不能增加、修改、删除固定数据库角色,管理员可使用系统存储过程sp_addrolemember将用户添加到数据库角色中,或使用系统存储过程sp_droprolemember删除用户的某一数据库角色。
用户自定义角色则是根据需要,建立具有某种公共许可权限的用户组。可使用系统存储过程sp_addrole创建用户自定义角色或使用系统存储过程sp_droprole删除自定义的角色。
初创建的用户自定义角色的所有者为dbo,且该角色不具有任何权限,需进行权限管理。
还有一类应用程序角色,一般是非活动的,需要用密码激活,只在应用程序中生效,连接断开即失效,不作讨论。
语句许可权限指在创建数据库或数据库中对象所涉及的活动,所需要的许可权限,包括:Backup Database、Backup Log、Create Database、Create Default、Create Function、Create Procedure、Create Rule、Create Table、Create View。
对象许可权限指用户操作数据库中的对象所需要的操作权限,包括对数据库对象的SELECT、INSERT、UPDATE、DELETE、EXECUTE权限。
预定义许可权限控制由预定义系统角色的成员或数据库对象所有者执行的活动,例如sysadmin固定服务器角色成员自动继承在SQL SERVER中进行安装、操作和查看的全部权限等。
使用GRANT语句进行权限的授予,使用DENY语句进行权限的拒绝,使用REVOKE语句进行权限的废除。
SQL SERVER中的安全管理层次多,从服务器安全、数据库安全到用户安全等方面,安全管理的方式也较多,固定服务器角色、数据库角色以及用户权限分配都需要管理员及使用者有较深刻的认识,对数据的安全才能起到更好的保护。
[1]赵杰,李涛,朱慧.SQL Server数据库管理、设计与实现教程[M].清华大学出版,2008.7.
[2]邢红刚.SQL Server数据库的安全问题的思考[J].科技资讯,2008.
[3]吴溥峰,张玉清.数据库安全综述[J].计算机工程,2006.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!