打印本文 打印本文 关闭窗口 关闭窗口
[转载] 编写安全的 Transact-SQL
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2567  更新时间:2007/11/14 12:56:49  文章录入:mintao  责任编辑:mintao
R_NAME()

此过程会限制当前用户,使其无法查看其他任何用户的数据。但是,如果此过程中的 SELECT 语句是通过动态 EXEC() 或通过 sp_executesql 执行的,您则必须授予用户对 UserInfo 表的直接 SELECT 权限,这是因为这个动态执行的查询是在当前用户的安全上下文中运行的。如果用户能够直接登录服务器,他们则可以使用此权限跳过该存储过程提供的行级安全,查看所有用户的数据。

返回页首返回页首

小结

总而言之,下面的建议将有助于您开发在 SQL Server 中安全运行的 T-SQL 代码:

保护您的开发 SQL Server 的安全,就好像它是一个生产服务器一样。这样有助于确保您开发安全的代码,还可以帮助您定义应用程序正常运行所需的最低权限集。

进行 T-SQL 开发和测试时请使用具有最低权限的 SQL Server 帐户。不要使用 sysadmin 或 dbo 帐户。

对于允许 T-SQL 执行任意外部代码的存储过程,要非常注意,如 sp_OACreate 和 xp_cmdshell。如果必须使用这些扩展,则一定要考虑它们独特的安全隐患。

请遵照保护 T-SQL 开发的最佳方法,其中包括:将用户提供的数据以显式参数进行传递、编写可避免 SQL 注入式攻击的代码、避免使用不必要的动态 SQL、授予访问存储过程的权限而不要授予直接访问基表的权限。

安全的 T-SQL 才能构成安全的应用程序。利用下面的资源可以确保您的服务器进行了安全配置,并确保您拥有一个安全的数据库客户端应用程序。

返回页首返回页首

参考资料

SQL Server Security Resource Page

Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication

SQL Server 2000 SP3 Security Features and Best Practices: Secure Multi-tier Deployment

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口