【问题标题】:SQL Server Database Roles via SMO通过 SMO 的 SQL Server 数据库角色
【发布时间】:2010-12-13 20:37:12
【问题描述】:

我正在尝试通过 SMO 程序集向 SQL 2005 数据库添加新角色。 Roles.Add 方法似乎没有添加新角色。我将我的用户帐户设置为 securityadmin 和 sysadmin。

下面是我试图用来设置新角色的代码摘录: [假设 d 已设置为数据库对象]

        Dim dr As New DatabaseRole
        dr.Name = r
        dr.Parent = d
        dr.Owner = d.Name
        d.Roles.Add(dr)

        'Error here "<role name = r> does not exist in the current database."'
        dr.AddMember("dbo")

【问题讨论】:

  • 这不是一个真正的答案,但您可以在没有 DMO 的情况下创建角色。 SSMS 允许您添加角色,然后为其生成 SQL 脚本。您可以从代码中触发该脚本,而不是使用 DMO。

标签: sql-server database roles smo


【解决方案1】:

您需要先创建角色,然后将其分配给数据库。

将您的代码更改为:

Dim dr As New DatabaseRole        
dr.Name = r        
dr.Parent = d        
dr.Owner = d.Name  
dr.Create();      
d.Roles.Add(dr)        
dr.AddMember("dbo")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    相关资源
    最近更新 更多