Поделиться через


Метод GenerateDatabaseRightsScript (WMI MSReportServer_ConfigurationSetting)

Создает скрипт SQL, с помощью которого пользователям могут предоставляться права доступа к базе данных сервера отчетов и другим базам данных, необходимым для работы сервера отчетов. Ожидается, что вызывающая сторона соединится с сервером базы данных SQL Server и выполнит этот скрипт.

Синтаксис

Public Sub GenerateDatabaseRightsScript(ByVal UserName As String, _  
    ByVal DatabaseName As String, ByVal IsRemote As Boolean, _  
    ByVal IsWindowsUser As Boolean, ByRef Script As String, _  
    ByRef HRESULT As Int32)  
public void GenerateDatabaseRightsScript(string UserName, string DatabaseName, bool IsRemote, bool IsWindowsUser, out string Script,   
out Int32 HRESULT);  

Параметры

UserName
Имя пользователя или идентификатор безопасности Windows пользователя, которому скрипт предоставляет права.

DatabaseName
Имя базы данных, доступ к которой скрипт предоставит пользователю.

IsRemote
Логическое значение. Показывает, является ли база данных удаленной по отношению к серверу отчетов.

IsWindowsUser
Логическое значение, которое показывает тип пользователя для указанного имени пользователя: Windows или SQL Server.

Скрипт
[out] Строка, содержащая сформированный скрипт SQL Server.

HRESULT
[out] Значение, которое указывает, окончился ли вызов успехом или сбоем.

Возвращаемое значение

Возвращает значение HRESULT , являющееся признаком успешного или неуспешного завершение вызова метода. Значение 0 указывает, что вызов метода завершился успешно. Ненулевое значение указывает, что произошла ошибка.

Замечания

Если параметр DatabaseName пуст, IsRemote пропускается и значение файла конфигурации сервера отчетов используется в качестве имени базы данных.

Если для IsWindowsUser задано значениеtrue, Имя пользователя должно находиться в домене> формата<\<имени пользователя>.

Если задано trueзначение IsWindowsUser, созданный скрипт предоставляет пользователю права входа для SQL Server, устанавливая базу данных сервера отчетов в качестве базы данных по умолчанию и предоставляет роль RSExec в базе данных сервера отчетов, временную базу данных сервера отчетов, главную базу данных и системную базу данных MSDB.

Если задано значение trueIsWindowsUser, метод принимает стандартные идентификаторы SID Windows в качестве входных данных. Если предоставлен стандартный идентификатор безопасности Windows или имя учетной записи службы, то они переводятся в строку имени пользователя. Если база данных локальная, то учетная запись переводится в соответствии с представлением текущего языкового стандарта учетной записи. Если база данных удаленная, то учетная запись представляется как учетная запись компьютера.

В приведенной ниже таблице показаны переведенные учетные записи и их удаленное представление.

Переведенная учетная запись/идентификатор безопасности Общее имя Удаленное имя
(S-1-5-18) Локальная система <Domain>\<ComputerName>$
.\LocalSystem Локальная система <Domain>\<ComputerName>$
ComputerName\LocalSystem Локальная система <Domain>\<ComputerName>$
локальная система; Локальная система <Domain>\<ComputerName>$
(S-1-5-20) Сетевая служба <Domain>\<ComputerName>$
NT AUTHORITY\NetworkService Сетевая служба <Domain>\<ComputerName>$
(S-1-5-19) Локальная служба Ошибка — см. ниже.
NT AUTHORITY\LocalService Локальная служба Ошибка — см. ниже.

Если вы используете встроенную учетную запись в среде Windows 2000 и удаленную базу данных сервера отчетов, возвращается сообщение об ошибке.

Если указана встроенная учетная запись LocalService и база данных сервера отчетов удаленная, то возвращается сообщение об ошибке.

Если параметр IsWindowsUser имеет значение true, а значение параметра UserName требует перевода, то поставщик WMI определяет, на каком компьютере находится база данных сервера отчетов: на этом же или на удаленном. Чтобы определить, что установка локальная, поставщик WMI проверяет свойство DatabaseServerName на значения из приведенного ниже списка. Если одно из значений совпадает, то база данных локальная. В противном случае она является удаленной. При сравнении учитывается регистр букв.

Значение параметра DatabaseServerName Пример
"."
"(local)"
LOCAL
localhost
<Machinename> testlab14
<MachineFQDN> example.redmond.microsoft.com
<IPAddress> 180.012.345,678

Если задано значение trueIsWindowsUser, поставщик WMI вызывает LookupAccountName, чтобы получить идентификатор безопасности для учетной записи, а затем вызывает LookupAccountSID, чтобы получить имя, которое будет помещено в скрипт SQL Server. Это гарантирует, что имя учетной записи успешно пройдет проверку в SQL Server.

Если задано значение falseIsWindowsUser, созданный скрипт предоставляет роль RSExec в базе данных сервера отчетов, временной базе данных сервера отчетов и базе данных MSDB.

Если задано значение falseIsWindowsUser, пользователь SQL Server должен уже существовать в SQL Server для успешного выполнения скрипта.

Если для сервера отчетов не задана база данных сервера отчетов, то при вызове метода GrantRightsToDatabaseUser возвращается ошибка.

Созданный скрипт поддерживает SQL Server 2000, SQL Server 2005 и SQL Server 2008.

Требования

Пространство имен: root\Microsoft\SqlServer\ReportServer\<InstanceName>\v12\Admin

См. также

Элементы MSReportServer_ConfigurationSetting