SQL Server 2008架构分离 - 架构权限和数据库角色

时间:2011-07-28 14:18:39

标签: tsql sql-server-2008 permissions roles

我真的希望有人对此有所了解。只是为了澄清我在前面谈论的内容;在引用Schema时,我的意思是用于所有权分离的数据库对象,而不是数据库创建模式。

我们使用Sql Server Schema对象将表分组为每个组属于应用程序的wholes。每个应用程序也有自己的数据库登录。我刚刚开始介绍数据库角色,以便完全自动化部署到测试和暂存环境。我们正在使用xSQL Object比较引擎。每晚运行批处理文件以执行比较并生成脚本更改文件。然后,可以将其与代码更改一起应用于目标数据库。

我遇到的问题如下:请考虑以下数据库结构:

数据库:

  • 安全/架构:
    • 核心
      • CoreRole(所有者)
      • SchemaARole(选择,删除,更新)
      • SchemaBRole(选择)
    • SchemaA
      • SchemaARole(所有者)
    • SchemaB
      • SchemaBRole(所有者)
  • 安全/角色/数据库角色:
    • CoreRole
      • core_login
    • SchemaARole
      • LOGIN_A
    • SchemaBRole
      • LOGIN_B

该设置非常适合使用这些设置的三个应用程序。唯一的问题是如何创建/生成创建模式的脚本 - >角色权限?正确应用所有者角色。因此,例如,架构Core获得所有者角色CoreRole(如预期的那样)。但是SchemaARole和SchemaBRole没有得到应用。

我无法在xSQL对象中找到打开此选项的选项,也不存在从SQL Server管理工作室编写脚本的选项。好吧,我至少找不到它。

我想做不可能吗?那么SQL Server如何管理这种关系呢?

1 个答案:

答案 0 :(得分:0)

我刚刚启动了SQL Profiler&陷入了我认为你的情景。试试这个:

GRANT SELECT ON [Core].[TestTable] TO [CoreRole]
GRANT DELETE ON [Core].[TestTable] TO [CoreRole]
GRANT UPDATE ON [Core].[TestTable] TO [CoreRole]