sql 2005 - 仅限通过存储过程访问的策略

时间:2010-09-15 00:42:25

标签: sql permissions

我希望将单个sql实例上的各种数据库中的某些数据访问我们的母公司。他们不想要Web服务,而是想要一个存储过程,它将从不同的数据源编译数据并返回一个记录集。

我们的两个域之间存在信任,所以基本上它们在我们的域上,我将只为sql对象(存储过程)提供所需的权限

我打算创建一个具有所需存储过程的“集成”数据库。

虽然集成数据库本身没有表,但至少现在,我确实想要锁定数据库,以便没有漏洞,例如母公司能够在数据库上创建表或影响权限等。 / p>

建议的方法是锁定我的“集成”数据库,以便母公司只能访问我明确赋予权限的存储过程。

作为一个sql DBA,我做了一个好的.net程序员,即根据我的理解,它将需要GRANT EXECUTE ON [procedure] TO [user]等命令的用户授予所选存储过程的权限,但除此之外我我不确定一个明确的策略来实现我的需要。

我想确保我不会在安检中留下漏洞。

如果有人可以建议我需要采取的步骤,即我需要运行哪些命令来实现我想要的,或者指向一篇好文章我会很感激。

我已在数据库上运行命令REVOKE CONNECT FROM GUEST。

1 个答案:

答案 0 :(得分:1)

  

锁定“集成”数据库的建议方法是什么,以便母公司只能访问我明确授予权限的存储过程。

  1. 专门为来自母公司的用户创建一个角色
  2. 仅授予EXECUTE特定商店过程的角色
  3. 授予角色db_datareader角色 - 这将确保他们无法创建表格等。