将通过 ODBC 访问的权限限制为仅架构视图 SQL 2008

将通过 ODBC 访问的权限限制为仅架构视图 SQL 2008

我对 SQL 安全不太了解,所以也许有人可以帮助我。我们有一个数据库应用程序,安装后,默认情况下会授予公共角色对数据库中所有表的访问权限。当您创建 SQL 用户时,它会将该用户添加到公共角色,因此新用户将有权访问所有表。

我们需要将第三方 ODBC 应用程序连接到数据库。我们创建了一个从同一数据库中的表中提取数据的视图,并且我们希望该连接只能访问创建的视图。我们决定使用架构来应用安全性,而不是尝试从所有表中删除公共角色。

所有默认表都在 中SCHEMA1。我们将 放在VIEWSCHEMA2,并创建USERA拒绝和 授予SELECT 。两者的所有者相同。SCHEMA1SELECTSCHEMA2SCHEMAS

当我使用 Access 测试 ODBC 并尝试打开时VIEW,收到以下错误

对对象 (SCHEMA1 中的表名) 的 SELECT 权限被拒绝....

我猜是因为我拒绝了SELECTSCHEMA1它保存了 的引用表VIEW。如果是这样,您如何通过 ODBC 限制仅访问特定表?

发布此内容后,我开始在 Google 上搜索有关从架构中撤销公共角色权限作为一种可能选项的信息,但尚未测试,但也遇到了“应用程序角色”。我还需要多读一点,但想知道这是否是我应该前进的方向。

相关内容