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

在 SQL Server 中创建应用程序角色

 
阅读更多

应用程序角色可提供对应用程序(而不是数据库角色或用户)分配权限的方法。 用户可以连接到数据库、激活应用程序角色以及采用授予应用程序的权限。 授予应用程序角色的权限在连接期间有效。

安全说明

当客户端应用程序在连接字符串中提供应用程序角色名称和密码时,可激活应用程序角色。 因为密码必须存储在客户端计算机上,所以这些角色在二层应用程序上导致一个安全漏洞。 在三层应用程序中,您可以存储密码,以便其他应用程序用户将无法对其进行访问。

应用程序角色功能


应用程序角色具有以下功能:

· 与数据库角色不同,应用程序角色不包含成员。

· 当客户端应用程序向 sp_setapprole 系统存储过程提供应用程序角色名称和密码时,可激活应用程序角色。

· 密码必须存储在客户端计算机上,并且在运行时提供;应用程序角色无法从 SQL Server 内激活。

· 密码不加密。 SQL Server 2005 开始,参数密码作为单向散列存储。

· 一旦激活,通过应用程序角色获取的权限在连接期间保持有效。

· SQL Server 2000 中,无法将执行上下文切换回原始调用方。 因此,您必须关闭连接池才能使用应用程序角色。 有关更多信息,请参见 SQL Server 连接池 (ADO.NET)

· 应用程序角色继承授予 public 角色的权限。

· 如果固定服务器角色 sysadmin 的成员激活某一应用程序角色,则安全上下文在连接期间切换为应用程序角色的上下文。

· 如果您在具有应用程序角色的数据库中创建 guest 帐户,则不必为该应用程序角色或调用它的任何登录名创建数据库用户帐户。 只有当在另一个数据库中存在 guest 帐户时,应用程序才能直接访问另一数据库。

· 返回登录名的内置函数(如 SYSTEM_USER)返回调用应用程序角色的登录名。 返回数据库用户名的内置函数将返回应用程序角色的名称。

最小特权原则

仅当密码遭泄漏时,应用程序角色才被授予必要的权限。 在使用应用程序角色的任何数据库中,应撤消对 public 角色的权限。 在不希望应用程序角色的调用方具有访问权限的任何数据库中,禁用 guest 帐户。

应用程序角色增强

SQL Server 2005 版本开始,执行上下文可在激活应用程序角色后切换回原始调用方,而不必禁用连接池。 sp_setapprole 过程具有一个创建 Cookie 的新选项,Cookie 包含有关调用方的上下文信息。 您可以通过调用 sp_unsetapprole 过程来还原会话,并向其传递 Cookie

应用程序角色替代项


应用程序角色依赖于密码的安全性,而密码具有潜在的安全漏洞。 密码被嵌入应用程序代码或保存在磁盘上就有可能泄露。

对于 SQL Server 2005 或更高版本,您可能需要考虑下列其他选择。

· 使用通过 EXECUTE AS 语句及其 NO REVERT WITH COOKIE 字句切换的上下文。 您可以在未映射为登录名的数据库中创建用户帐户。 然后,向此帐户分配权限。 对于很少登录的用户使用 EXECUTE AS 比较安全,因为它基于权限,而不基于密码。 有关更多信息,请参见 SQL Server 中使用模拟来自定义权限 (ADO.NET)

· 使用证书对存储过程进行签名,并仅授予执行这些过程的权限。 有关更多信息,请参见 SQL Server 中为存储过程签名 (ADO.NET)

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

分享到:
评论

相关推荐

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

     19.5 应用程序角色  19.6 更高级的安全性  19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化...

    Microsoft SQL Server 2005 Express Edition SP3

    由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储...

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

     19.5 应用程序角色  19.6 更高级的安全性  19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化...

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

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

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

    9.8.4 创建应用程序数据库角色 9.8.5 删除数据库用户的角色成员关系 9.8.6 删除用户定义的角色 9.8.7 管理访问和角色的Transact-SQL命令 9.9 管理数据库权限 9.9.1 为语句分配数据库权限 9.9.2 登录的对象权限 9.9.3...

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

    9.8.4 创建应用程序数据库角色 9.8.5 删除数据库用户的角色成员关系 9.8.6 删除用户定义的角色 9.8.7 管理访问和角色的Transact-SQL命令 9.9 管理数据库权限 9.9.1 为语句分配数据库权限 9.9.2 登录的对象权限 9.9.3...

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

    9.8.4 创建应用程序数据库角色 9.8.5 删除数据库用户的角色成员关系 9.8.6 删除用户定义的角色 9.8.7 管理访问和角色的Transact-SQL命令 9.9 管理数据库权限 9.9.1 为语句分配数据库权限 9.9.2 登录的对象权限 9.9.3...

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

     9.8.4 创建应用程序数据库角色 261  9.8.5 删除数据库用户的角色成员关系 262  9.8.6 删除用户定义的角色 262  9.8.7 管理访问和角色的Transact-SQL命令 263  9.9 管理数据库权限 264  9.9.1 为语句分配...

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

     19.5 应用程序角色  19.6 更高级的安全性  19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化...

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

     19.5 应用程序角色  19.6 更高级的安全性  19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化...

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

     9.8.4 创建应用程序数据库角色 261  9.8.5 删除数据库用户的角色成员关系 262  9.8.6 删除用户定义的角色 262  9.8.7 管理访问和角色的Transact-SQL命令 263  9.9 管理数据库权限 264  9.9.1 为语句分配...

    SQLServer安全及性能优化

    设置角色的时候不要为public角色授予任何权限,并且从sysadmin这个角色中删除windows的administrators组,提高系统安全性。 删除不必要的数据库对象 删除危险的存储过程 xp_cmdshell:执行操作系统命令,这是一个...

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

     19.5 应用程序角色  19.6 更高级的安全性  19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化...

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

     19.5 应用程序角色  19.6 更高级的安全性  19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化...

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQLServer2008查询性能优化 1/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQL Server 2008 商业智能完美解决方案(3)

    利用Microsoft SQL Server 2008实现灵活的商业智能解决方案使用Microsoft 完善的BI工具构建B0解决方案的必备指南,使用SQLServer 2008设计、开发和部署更有效的数据集成、报表、分析解决方案所需的权威操作指南。...

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

     9.8.4 创建应用程序数据库角色 261  9.8.5 删除数据库用户的角色成员关系 262  9.8.6 删除用户定义的角色 262  9.8.7 管理访问和角色的Transact-SQL命令 263  9.9 管理数据库权限 264  9.9.1 为语句分配...

    sql server教程.doc

    它提供了一种有效地存储、管理和检索数据的方式,并支持广泛的应用程序开发。以下是SQL Server教程的一些主要内容: 1. SQL Server的安装和配置:介绍如何下载、安装和配置SQL Server,包括选择适当的版本和设置...

    实验1答案 - 建立学生数据库.sql

    应用程序连接同一台计算机上的SQL Server数据库引擎实例的方式与连接其它计算机上运行的SQL Server数据库引擎的方式基本相同。 图3-8 “实例配置”界面 (8)在“服务器配置”页上指定SQL Server服务的登录...

Global site tag (gtag.js) - Google Analytics