- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server数据库安全机制
SQL Server数据库安全机制一 SQL Server数据库SQL Server 数据库是微软公司的一款关系型数据库系统。 它专门为分布式客户机 / 服务器计算所设计的一个出众的数据库管理平台。 它的优势是可扩展性,高性能管理,支持堆成多处理结构,ODBC 和存储过程,强壮的事物处理能力,支持 SQL 语句。其中 SQL 语句可以执行如从数据库中提取数据,更新、删除数据库中的数据等等各种各样的操作,可以用来完成几乎所有的数据库操作。二、数据库的安全机制数据库的安全性是指保护数据库避免不合法的使用, 以免数据的泄漏、更改或破坏。数据库安全机制是多层次, 具体可以划分为用户、数据库管理系统(DBMS) 、操作系统(OS) 、数据库(DB) 四个层次。对于用户部分的安全机制采用身份认证方法; 数据库管理系统则是通过访问控制保证资料安全性和审计实时监视和记录用户的行为, 任何一个用户意图控制一个对象都必须拥有相应的授权同时用户的行为也将被监视和记录; 在操作系统级的安全控制主要侧重于文件权限保护, 系统资源使用限制; 在数据库存储这一级目前大多采用加密技术, 对数据进行加密,在数据传输时可以对数据协议进行加密,为了防止数据库意外破坏,有备份恢复策略。( 一) 用户层次数据库用户名是连接数据库、存取数据库对象的主体标记, 是数据库中管理权限和控制数据访问的一种安全措施, 用户认证就是确定所要求的用户身份的正确性, 口令识别是数据库身份认证中最常用的方式。对于身份验证模式,SQL Server 提供了两种认证方式:Windows 身份验证和SQL Server身份验证。Windows 身份验证模式,即使用 Windows 中的其中一个用户登录到 SQL Server 数据库中。SQL Server身份验证即使用创建用来登陆数据库的身份进行验证。而在远程以WEB形式登陆数据库的时候,同样要进行身份识别。SQL注入攻击是黑客最常见的攻击数据库的手段。SQL注入攻击是攻击者把SQL语句插入到 Web 表单的输入域或页面请求查询字符串中,欺骗服务器执行恶意SQL语句的操作。防治SQL注入的方法:1.把用户验证的 SQL 语句构造到存储过程中是行之有效的方法,例如构建存储过程,只有用户名正确和密码正确才能够登陆,同时将输入的数据使用Cast()函数转换成一个整体进行验证。Create Procedure Proc IsUserValid@UserNameVarchar( 32),@Password Varchar( 32)AsSelect Count(*) from UsersWhere Cast(UserName As Varchar(32))=Cast(@UserName As Varchar(32))And Cast (Password As Varbinary)=Cast (@PasswordAs Varbinary)Go2.对输入的验证信息进行严格的格式审查,排查字符”or”,”and”,”=”等,一旦遇到,可以拒绝登陆。( 二)数据库管理系统层次主要包括访问控制、数据库审计、视图机制(1)访问控制数据库访问控制 (access control) 是对用户访问数据库各种对象( 包括表、视图、目录、应用等) 的权限( 包括创建、撤销、查询、增加、删除、修改、执行等) 的控制, 可以通过用户分类和数据分类实现。访问控制是数据库安全系统中的核心技术, 主要包括系统授权、确定访问权限和实施权限三个部分, 是数据库管理系统最有效的安全手段。基于角色的权限管理可以有效的对用户进行权限管理。如下例子所示:USE class--创建角色r_testEXECsp_addroler_test--授予r_test 对Student表的所有权限GRANTselect,delete,updateON Student TO r_test--授予角色r_test 对Course 表的SELECT 权限GRANTSELECTON Course TO r_test--添加登录l_test,设置密码为123,默认数据库为classEXECsp_addloginl_test,123,class--为登录l_test 在数据库class中添加安全账户u_testEXECsp_grantdbaccessl_test,u_test--添加u_test 为角色r_test 的成员EXECsp_addrolememberr_test,u_test--拒绝安全账户u_test 对Course表的SELECT 权限DENYSELECTON Course TO u_test执行命令,用l_test登陆数据库,能够看到角色r_test和用户u_test,如图一所示,可以对Student表进
文档评论(0)