Метод ConfigurationSetting — GenerateDatabaseRightsScript

Создает скрипт 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 указывает, что вызов метода завершился успешно. Ненулевое значение указывает, что произошла ошибка.

Замечания

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

Если Параметр IsWindowsUser имеет значение true, имя пользователя должно быть в формате <domain>\<username>.

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

Если параметр IsWindowsUser имеет значение true, то метод принимает в качестве входных данных стандартные идентификаторы безопасности 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, поставщик WMI определяет, находится ли база данных сервера отчетов на том же компьютере или на удаленном компьютере. Это определение выполняется, когда необходимо преобразовать значение, указанное в UserName . Чтобы определить, является ли установка локальной, поставщик WMI оценивает свойство DatabaseServerName со следующим списком значений. Если одно из значений совпадает, то база данных локальная. В противном случае это удаленно. При сравнении учитывается регистр букв.

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

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

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

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

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

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

Requirements

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

элементы MSReportServer_ConfigurationSetting