Роли базы данных SQL Server через SMO

Я пытаюсь добавить новые роли в базу данных SQL 2005 через сборки SMO. Метод 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")

person Community    schedule 06.11.2009    source источник
comment
Это не совсем ответ, но вы можете создавать роли без DMO. SSMS позволяет добавить роль, а затем сгенерировать для нее сценарий SQL. Вы можете запустить этот скрипт из кода вместо использования DMO.   -  person Andomar    schedule 07.11.2009


Ответы (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")
person SO User    schedule 11.12.2009