SQL Server EE:限制通过 Microsoft 服务器管理工​​具登录的用户的访问

SQL Server EE:限制通过 Microsoft 服务器管理工​​具登录的用户的访问

我们在 SQL Server Express 版本中有一个数据库,第三方应用程序使用它来存储数据。当用户通过此第三方程序登录时,将使用他们的 Windows 身份验证,并且(我假设)他们的 Windows 身份验证也会传递给 SQL 数据库。我们为用户提供了 public 和 dbwriter 角色,以允许他们能够写入数据库。如果我们从 dbwriter 角色中删除他们,第三方应用程序将无法执行所需的查询。

问题在于,通过为用户提供数据写入者角色,我们赋予了他们通过服务器管理工​​具登录并手动更改数据的能力。根据我们的审计准则,我们不能允许这种行为。

理想情况下,我希望当用户处于某个角色时,他们无法通过服务器管理实用程序登录进行更改,但是当他们通过第三方软件登录并进行第三方软件所需的更改时。到目前为止,我想到的唯一解决方案是,当有人尝试通过服务器实用程序登录并使用第三方应用程序的 Windows 身份验证时,将登录类型更改为在创建数据库期间分配的数据库登录。这不是一个很好的解决方案,这就是我在这里的原因。任何想法都将不胜感激!

诚挚的,阿南德

答案1

虽然应用程序可能会传递最终用户的 Windows 凭据,但也可能并非如此。启动 SQL 探查器并查看哪个登录名正在执行数据更改。许多应用程序都让应用程序服务器代表用户进行数据操作,因此您可能会看到该帐户执行该操作。如果没有,则可能需要使用应用程序角色。查看http://msdn.microsoft.com/en-us/library/ms190998.aspx

答案2

使用应用程序角色是实现此目的的最佳方法。假设您使用的是 C#,则一些示例代码

相关内容