我们有一个使用服务帐户和细粒度表的内部应用程序,并且字段控制由应用程序中的权限表控制。
如果我们想在 Active Directory 中使用传递安全性,我们会遇到一个问题,即具有 odbc 访问权限的用户可以修改应用程序中存在的业务规则之外的表。
有没有办法启用直通安全性,但禁用 odbc 访问。
我们有一个使用服务帐户和细粒度表的内部应用程序,并且字段控制由应用程序中的权限表控制。
如果我们想在 Active Directory 中使用传递安全性,我们会遇到一个问题,即具有 odbc 访问权限的用户可以修改应用程序中存在的业务规则之外的表。
有没有办法启用直通安全性,但禁用 odbc 访问。
您可以使用存储过程并且只授予存储过程的权限,以确保不会违反基本业务规则(如果它们简单且不变,则可以进入 SP)或至少(如果它们很复杂)或更改,它们在 SP 中效果不佳),所有修改都必须通过存储过程。如果他们与数据库建立 ODBC 连接,他们可以执行存储的过程以进行更改,但如果您授予表或视图的仅选择权限,则他们无法通过例如 Access 链接表来执行此操作。
您可以使用应用程序角色http://msdn.microsoft.com/en-us/library/ms190998.aspx以允许您阻止修改访问,除非设置了应用程序角色。
如果是 SQL 2005 +,则可以使用登录触发器。