代码之家  ›  专栏  ›  技术社区  ›  SleepyBoBos

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

  •  1
  • SleepyBoBos  · 技术社区  · 14 年前

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

    我们的两个域之间存在信任,因此本质上它们在我们的域中,我将只授予SQL对象(存储过程)所需的权限。

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

    虽然集成数据库本身将没有表,但至少目前为止,我确实希望锁定数据库,这样就没有漏洞,例如父公司能够在数据库上创建表或影响权限等。

    建议采用什么方法来锁定“集成”数据库,以便父公司只有权运行我明确授予权限的存储过程。

    作为一名SQL DBA,我是一名优秀的.NET程序员,据我所知,它将要求命令用户(如grant execute on[procedure]to[user]对所选存储过程授予权限,但除此之外,我不确定是否有一个明确的策略来实现我所需要的。

    我要确保我不会在保安处留下漏洞。

    如果有人能建议我要采取的步骤,即我需要运行什么命令来实现我想要的,或者给我指出一篇好文章,我会很感激的。

    我已经在数据库上运行了命令revoke connect from guest。

    1 回复  |  直到 14 年前
        1
  •  1
  •   OMG Ponies    14 年前

    建议采用什么方法来锁定“集成”数据库,以便父公司只有权运行我明确授予权限的存储过程。

    1. 为来自母公司的用户专门创建角色
    2. 只授予 EXECUTE 到特定存储过程的角色
    3. 授予角色 db_datareader 角色——这将确保他们不能创建表等。