user204885
user204885

Reputation:

SQL Server Database Roles via SMO

I am trying to add new roles to a SQL 2005 database via the SMO assemblies. The Roles.Add method just does not seem to add the new role. I have my user account set as securityadmin and sysadmin.

Below is the code extract that I am trying to use to set the new role: [assuming d has been set to a database object]

        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")

Upvotes: 0

Views: 1165

Answers (1)

Rashmi Pandit
Rashmi Pandit

Reputation: 23798

You need to first create the role and then assign it to the database.

Change your code to:

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

Upvotes: 1

Related Questions