欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Sql随手笔记 » 正文

热门阅读

数据库安全-如何让指定用户可以对数据表进行Truncate操作

创建时间:2012年06月22日 15:04  阅读次数:(9347)
分享到:
一、如何让指定用户可以对数据表进行Truncate操作
Truncate在对大表全删除操作时,会明显比Delete语句更快更有效,但是因为它不需要存放日志,并且一定是全表删除,所以造成数据的不可恢复性。也说明了它的危险性。
但是,执行Truncate需要有表拥有者、系统管理员、db_owner、db_ddladmin这些里面的其中一种高权限角色才能执行。

对此,可以使用2005版本之后的EXECUTE AS 表达式来实现权限内容的切换:
1. 切换登录:EXECUTE AS LOGIN
2. 切换用户:EXECUTE AS USER
3. 切换执行权限:EXECUTE AS owner/’user name’,利用高用户权限来执行作业。此步骤可以在低权限实体下执行高权限操作,也能避免安全性漏洞。

另外,只有EXECUTE AS Caller可以跨数据库执行,而其他方式进行的权限切换仅限制于本数据库。
注意:执行EXECUTE AS USER模拟使用者切换时,需要先获得被模拟用户的授权。可以使用REVERT来还原执行内容前的原始身份。

二、如何避免SQL注入的攻击
对于数据库应用程序,无论是那种DBMS,SQL注入都是一大隐患。
要避免SQL注入,应该最起码做到以下几点:
1.检查输入的数据,应用程序不要相信用户输入的数据,必须经过检验后才能输入数据库。要排除%,--等特殊符号。
2.避免果度暴露错误信息。建议可以转换成Windows事件或者是转换成应用程序内部错误信息。
3.使用参数化查询或者存储过程

注意:动态SQL是造成SQL注入的主要原因
来源:csdn
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 57+45=? 的结果(结果是:102)
结  果: