我正在尝试通过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")
答案 0 :(得分: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")