`
bolutes
  • 浏览: 868258 次
文章分类
社区版块
存档分类
最新评论

使用 SQL Server 中的存储过程管理权限

 
阅读更多
存储过程的优点

<!---->

存储过程具有以下优点:

  • 可以包装数据逻辑和业务规则,以便用户可以仅通过开发人员和数据库管理员打算使用的方式访问数据和对象。

  • 验证所有用户输入的参数化存储过程可用于阻止 SQL 注入攻击。 如果使用动态 SQL,请确保将命令参数化,并绝对不能将参数值直接包括在查询字符串中。

  • 可禁止即席查询和数据修改。 这样将阻止用户恶意或无意中损坏数据或执行查询,以避免降低服务器或网络的性能。

  • 可以在过程代码中处理错误,而无需将错误直接传递给客户端应用程序。 这样可防止返回错误消息,以避免其可能有助于探测攻击。 在服务器上记录错误并对其进行处理。

  • 存储过程只能编写一次,可由很多应用程序访问。

  • 客户端应用程序不需要知道有关基础数据结构的任何信息。 只要更改不影响参数列表或返回的数据类型,就可以更改存储过程代码,而无需在客户端应用程序中进行更改。

  • 存储过程可通过将多个操作组合到一个过程调用中来减少网络通讯。

<!---->

存储过程利用所有权链接来提供对数据的访问,这样,用户就不必拥有访问数据库对象的显式权限。 如果按顺序相互访问的对象由同一个用户所拥有,就会存在所有权链接。 例如,存储过程可以调用其他存储过程,或者存储过程可访问多个表。 如果执行链中的所有对象的所有者相同,则 SQL Server 只检查调用方的 EXECUTE 权限,而不检查调用方对其他对象的权限。 因此,只需对存储过程授予 EXECUTE 权限;可以撤消或拒绝对基础表的所有权限。

<!---->

仅编写存储过程不足以保证应用程序的安全, 还应当考虑以下潜在的安全漏洞。

  • 为您希望其能够访问数据的数据库角色授予对存储过程的 EXECUTE 权限。

  • 撤消或拒绝数据库中所有角色和用户(包括 public 角色)对基础表的所有权限。 所有用户会从公共角色中继承权限。 因此,拒绝对 public 的权限表示只有所有者和 sysadmin 成员具有访问权;所有其他用户将无法从其他角色的成员资格继承权限。

  • 请不要将用户或角色添加到 sysadmindb_owner 角色。 系统管理员和数据库所有者可访问所有数据库对象。

  • 禁用 guest 帐户。 这样将阻止匿名用户连接到数据库。 默认情况下,会在新数据库中禁用来宾帐户。

  • 实现错误处理和记录错误。

  • 创建用于验证所有用户输入的参数化存储过程。 将所有用户输入视为不受信任。

  • 除非绝对必要,否则应避免使用动态 SQL。 使用 Transact-SQL QUOTENAME() 函数可分隔字符串值,并对输入字符串中的任何分隔符进行转义。

以上内容转自:http://msdn.microsoft.com/zh-cn/library/bb669058.aspx

分享到:
评论

相关推荐

    SQL Server 存储过程与实例

    存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在...系统管理员可以对执行的某一个存储过程进行权限限制,从而能够实现对某些数据访问的限制,避免非授权用户对数据的访问,保证数据的安全。

    SQL Server 2008管理员必备指南(超高清PDF)Part1

    使用SQL Server Management Studio执行主要的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 执行备份和还原 《微软技术丛书》包括以下...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    使用SQL Server Management Studio执行主要的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 执行备份和还原 《微软技术丛书》包括以下...

    SQL SERVER 2000开发与管理应用实例

    本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...

    SQLServer2005数据库学习笔记

    │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql │ ├─03 建表、建库 │ create.sql │ ├─04 查询语句 │ netnote_sql.sql │ T-SQL(1).sql │ 收藏SQL语句.sql │ 精妙SQL语句收集_sql....

    sqlserver2000 事件探查器profiler

    用于SQL server2000自带的探查器不能用的 替换一下就行了 监视 SQL Server 实例的性能。 调试 Transact-SQL 语句和存储过程。...例如,可以创建您自己的应用程序,以便使用 SQL 事件探查器存储过程监视 SQL Server。

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    使用SQL Server Management Studio执行主要的管理任务 操作架构、表、索引和视图 进行自动化维护和实现基于策略的管理 监视服务器活动并优化性能 管理日志传送和数据库镜像 执行备份和还原 《微软技术丛书》包括以下...

    SQL.Server.2008管理员必备指南.part2.rar(2/4)

     使用SQL Server Management Studio执行主要的管理任务  操作架构、表、索引和视图  进行自动化维护和实现基于策略的管理  监视服务器活动并优化性能  管理日志传送和数据库镜像  执行备份和还原  《微软技术...

    Microsoft SQL Server 2005 Express Edition SP3

    如果已在安装过程中使用了默认的命名实例,则将实例指定为“SQLExpress”。 [顶部] 2.3 管理 SQL Server Express 的工具 有关连接到 SQL Server Express 数据库并进行管理的信息,请参阅 Microsoft 知识库文章 ...

    SQL.Server.2008管理员必备指南.part1.rar(1/4)

     使用SQL Server Management Studio执行主要的管理任务  操作架构、表、索引和视图  进行自动化维护和实现基于策略的管理  监视服务器活动并优化性能  管理日志传送和数据库镜像  执行备份和还原  《微软技术...

    SQL Server 2000简明培训教程

    6.1 SQL Server权限管理策略 6.2 用户权限管理 第7章 SQL Server代理服务 7.1 SQL Server代理服务配置 7.2 定义操作员 7.3 作业管理 7.4 警报管理 第8章 SQL Server数据复制 8.1 复制概述 8.2 配置服务器 8.3 ...

    SQLserver发邮件

    在 SQL Server 企业管理器中,展开服务器,展开 "支持服务 "文件夹,选择 "SQL 邮件 ",然后用右键单击。单击 "属性 ",然后在 "常规 "选项卡上,确保 "配置文件名 "框中指定的配置文件名正确。(事件探查器名必须与...

    Sql Server 2008 数据库课设报告(图书管理系统)

    Sql Server 2008 数据库课设报告(图书管理系统) 包一下全部要求,数据库设计完整sql代码: 1.数据库设计 要求数据库设计要合理,对数据库设计作必要的说明并抓图。 数据库名必须与自己真实姓名有关,所有同学不能...

    SQL server 语句大全

    SQL中的代码块 14 数据库中的if和else语句 14 SQL中的while语句 14 Case-End多分支语句 14 子查询 15 视图(虚拟表)和索引 16 视图 16 索引 16 事务管理 17 数据库的安全性 18 建立权限 19 存储过程...

    SQLServer2005数据库简明教程PPT

    第1章 SQL Server 2005关系数据库简介.ppt ...第8章 存储过程的操作与管理.ppt 第9章 触发器的操作与管理.ppt 第10章 权限管理.ppt 第11章 SQL Server 2005 集成服务.ppt 第12章 代理服务.ppt 第13章 报表服务管理.ppt

    SQLServer课程设计-论坛管理系统

    学完SQLServer课程后做的课设的完整备份,压缩包包含: 1.顶层数据流图、E-R图、功能模块图 2.SQL文件(建库建表、权限控制、存储过程、触发器) 3.Java源文件 4.功能界面截图

    SQL.Server.2008管理员必备指南.part4.rar(4/4)

     使用SQL Server Management Studio执行主要的管理任务  操作架构、表、索引和视图  进行自动化维护和实现基于策略的管理  监视服务器活动并优化性能  管理日志传送和数据库镜像  执行备份和还原  《微软技术...

    SQL Server 2008高级程序设计 4/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQLServer安全及性能优化

    如果不熟悉sqlserver可以使用数据库引擎优化顾问来对数据库提出优化建议,然后通过系统管理的修改达到目的。 数据库引擎优化顾问  数据库引擎优化顾问介绍  分析一个或多个数据库的工作负荷和物理实现,工作负荷...

    SQL Server 2008高级程序设计 2/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

Global site tag (gtag.js) - Google Analytics