2

我们有一个使用服务帐户和细粒度表的内部应用程序,并且字段控制由应用程序中的权限表控制。

如果我们想在 Active Directory 中使用传递安全性,我们会遇到一个问题,即具有 odbc 访问权限的用户可以修改应用程序中存在的业务规则之外的表。

有没有办法启用直通安全性,但禁用 odbc 访问。

4

3 回答 3

1

您可以使用存储过程并且只授予存储过程的权限,以确保不会违反基本业务规则(如果它们简单且不变,则可以进入 SP)或至少(如果它们很复杂)或更改,它们在 SP 中效果不佳),所有修改都必须通过存储过程。如果他们与数据库建立 ODBC 连接,他们可以执行存储的过程以进行更改,但如果您授予表或视图的仅选择权限,则他们无法通过例如 Access 链接表来执行此操作。

于 2008-11-07T19:52:18.523 回答
1

您可以使用应用程序角色http://msdn.microsoft.com/en-us/library/ms190998.aspx以允许您阻止修改访问,除非设置了应用程序角色。

于 2008-11-10T02:02:03.580 回答
0

如果是 SQL 2005 +,则可以使用登录触发器。

  • 使用 HOST_NAME 或 APP_NAME 限制谁连接到服务器或应用程序
  • 使用 sys.dm_exec_sessions 测试“client_interface_name”
于 2008-11-09T17:20:28.407 回答