应用程序角色在SQL Server和来宾帐户中进行跨数据库查询?

时间:2013-05-06 09:50:17

标签: sql-server

来自MSDN:Application Roles on MSDN

  

应用程序角色是一个数据库主体,它使应用程序能够以自己的类似用户的权限运行。您可以使用应用程序角色仅对通过特定应用程序连接的用户启用对特定数据的访问。与数据库角色不同,应用程序角色不包含成员,默认情况下处于非活应用程序角色适用于两种身份验证模使用sp_setapprole启用应用程序角色,这需要密码。由于应用程序角色是数据库级主体,因此只能通过在这些数据库中授予guest的权限来访问其他数据库。因此,任何已禁用guest虚拟机的数据库将无法访问其他数据库中的应用程序角色。

有人可以向我解释一下吗?

这是否意味着如果为该实例禁用访客帐户,我是否无法编写跨同一SQL Server实例的另一个数据库中的表的跨数据库查询?

1 个答案:

答案 0 :(得分:0)

首先,在实例上禁用来宾帐户是恕我直言,这是一个坏主意。来宾帐户旨在允许用户“查看”数据库(以及更多)。禁用实例的来宾帐户(以及自带主服务器)将停止枚举数据库,这可能会阻止经过身份验证的角色连接,具体取决于所使用的连接字符串。您可以将应用程序角色授予一个或多个数据库和实例,并且在此帐户下运行的应用程序将具有访问权限(除非以其他方式拒绝)因此,任何可以运行应用程序的用户都将通过应用程序访问该应用程序)允许应用程序执行某些操作而不授予用户这些权限的方法。 http://msdn.microsoft.com/en-us/library/aa905195%28v=sql.80%29.aspx按实例我假设您的意思是sQL安装实例......?