SQL Server应用程序角色,性能命中

时间:2008-10-19 18:11:41

标签: asp.net sql-server sql-server-2005 performance

我打算在我的应用程序中使用MS SQL Server 2005应用程序角色。我将通过执行sp_setapprole来启动该角色,并通过执行sp_unsetapprole SP来完成。该应用程序在ASP.NET中实现。

我已经读过“连接池无法正常工作”与应用程序池,并且没有办法对连接“断开事件”做出反应(在断开连接之前执行sp_unsetapprole)。

我打算在所有SP的开头拨打sp_setapprole,并在我所有SP的结尾处拨打sp_unsetapprole

您是否使用过SQL应用程序角色?你的XP是什么?性能如何?

2 个答案:

答案 0 :(得分:0)

过去我已经推出了自己的“认可”,这并不难。为每种类型的用户(经理,casher,职员等)创建数据库角色。使用组名创建数据库用户(manager_user,casher_user,clerk_user等)。为您的真实用户创建帐户并将其置于数据库角色中。通过将他们登录到数据库(打开和关闭连接),查找表或最佳验证您的asp.net用户,如果您使用Windows身份验证并从IIS获取他们的用户名。检查其在数据库角色中的成员身份,但使用role_user登录数据库。您可以通过role_user保护数据库对象,用户不登录,也无权访问任何sql对象,并获得连接池。

答案 1 :(得分:-1)

之前我没有使用过app角色,但是根据我对perf命中的了解,在设置应用程序角色后,无法恢复到prev。安全背景。因此,连接不能在池中重用。仅这一点就是一个巨大的影响。点击这会迫使你三思而后行使用app角色。

然而,文档说从SQL Server 2005开始,有一种方法可以记住从sp_setapprole返回的一种cookie中的原始安全上下文,然后使用sp_unsetapprole恢复它。所以汇集应该再次运作。如果我是你,我会比较性能。有几个简单的陈述/ sprocs。

您是否在应用程序级别而不是app角色上使用标准ASP.NET成员资格API?