2009-11-06 10 views
0

Je tente d'ajouter de nouveaux rôles à une base de données SQL 2005 via les assemblys SMO. La méthode Roles.Add ne semble pas ajouter le nouveau rôle. J'ai mon compte d'utilisateur défini comme securityadmin et sysadmin.Rôles de base de données SQL Server via SMO

Ci-dessous est un extrait de code que je suis en train d'utiliser pour définir le nouveau rôle: [en supposant que d a été fixé à un objet de base de données]

 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

Ce n'est pas vraiment une réponse, mais vous pouvez créer des rôles sans DMO. SSMS vous permet d'ajouter un rôle puis de générer un script SQL pour celui-ci. Vous pouvez déclencher ce script à partir du code, au lieu d'utiliser DMO. – Andomar

Répondre

1

Vous devez d'abord créer le rôle et puis attribuez-lui à la base de données.

Changer votre code:

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