GenerateDatabaseRightsScript ConfigurationSetting 메서드ConfigurationSetting Method - GenerateDatabaseRightsScript

보고서 서버 데이터베이스와 보고서 서버 실행에 필요한 기타 데이터베이스에 사용자 권한을 부여하는 데 사용할 수 있는 SQL 스크립트를 생성합니다.Generates a SQL Script that can be used to grant a user rights to the report server database and other databases required for a report server to run. 호출자는 SQL ServerSQL Server 데이터베이스 서버에 연결하여 해당 스크립트를 실행합니다.The caller is expected to connect to the SQL ServerSQL Server database server and execute the script.

구문Syntax

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

매개 변수Parameters

UserNameUserName
스크립트에서 권한을 부여할 사용자의 이름 또는 Windows SID(보안 식별자)입니다.The user name or Windows security identifier (SID) of the user to which the script will grant rights.

DatabaseNameDatabaseName
스크립트에서 사용자에게 액세스가 허용되는 데이터베이스의 이름입니다.The database name to which the script will grant access to the user.

IsRemoteIsRemote
데이터베이스가 보고서 서버에 대해 원격인지 여부를 나타내는 부울 값입니다.A Boolean value to indicating whether the database is remote from the report server.

IsWindowsUserIsWindowsUser
지정된 사용자 이름이 Windows 사용자인지 또는 SQL ServerSQL Server 사용자인지를 나타내는 부울 값입니다.A Boolean value indicating whether the specified user name is a Windows user or a SQL ServerSQL Server user.

스크립트Script
[out] 생성된 SQL ServerSQL Server 스크립트가 들어 있는 문자열입니다.[out] A string containing the generated SQL ServerSQL Server script.

HRESULTHRESULT
[out] 호출의 성공 여부를 나타내는 값입니다.[out] Value indicating whether the call succeeded or failed.

반환 값Return Value

메서드 호출의 성공 또는 실패를 나타내는 HRESULT 를 반환합니다.Returns an HRESULT indicating success or failure of the method call. 0 값은 메서드 호출이 성공했음을 나타냅니다.A value of 0 indicates that the method call was successful. 0 이외의 값은 오류가 발생했음을 나타냅니다.A non-zero value indicates that an error has occurred.

주의Remarks

DatabaseName 이 비어 있으면 IsRemote 는 무시되고 데이터베이스 이름에 보고서 서버 구성 파일 값이 사용됩니다.If DatabaseName is empty then IsRemote is ignored and the report server configuration file value is used for the database name.

경우 IsWindowsUser 로 설정 된 true, UserName 형식에서 이어야 합니다 <도메인 >\< 사용자 이름>합니다.If IsWindowsUser is set to true, UserName should be in the format <domain>\<username>.

IsWindowsUsertrue로 설정하면 생성된 스크립트에서 보고서 서버 데이터베이스를 기본 데이터베이스로 설정하여 사용자에게 SQL ServerSQL Server에 대한 로그인 권한을 부여하고, 보고서 서버 데이터베이스, 보고서 서버 임시 데이터베이스, master 데이터베이스 및 MSDB 시스템 데이터베이스에 대한 RSExec 역할을 부여합니다.When IsWindowsUser is set to true, the generated script grants login rights to the user for the SQL ServerSQL Server, setting the report server database as the default database, and grants the RSExec role on the report server database, the report server temporary database, the master database and the MSDB system database.

IsWindowsUsertrue로 설정하면 메서드에서 표준 Windows SID를 입력으로 사용합니다.When IsWindowsUser is set to true, the method accepts standard Windows SIDs as input. 입력된 표준 Windows SID 또는 서비스 계정 이름은 사용자 이름 문자열로 변환됩니다.When a standard Windows SID or service account name is supplied, it is translated to a user name string. 데이터베이스가 로컬 데이터베이스인 경우 계정은 계정의 지역화된 올바른 표현으로 변환되고If the database is local, the account is translated to the correct localized representation of the account. 원격 데이터베이스인 경우 계정은 컴퓨터 계정으로 표현됩니다.If the database is remote, the account is represented as the computer’s account.

다음 표에서는 변환된 계정과 해당 원격 표현을 보여 줍니다.The following table shows accounts that are translated and their remote representation.

변환된 계정/SIDAccount / SID that is translated 일반 이름Common Name 원격 이름Remote Name
(S-1-5-18)(S-1-5-18) 로컬 시스템Local System <도메인 >\< 컴퓨터 이름>$<Domain>\<ComputerName>$
.\LocalSystem.\LocalSystem 로컬 시스템Local System <도메인 >\< 컴퓨터 이름>$<Domain>\<ComputerName>$
ComputerName\LocalSystemComputerName\LocalSystem 로컬 시스템Local System <도메인 >\< 컴퓨터 이름>$<Domain>\<ComputerName>$
LocalSystemLocalSystem 로컬 시스템Local System <도메인 >\< 컴퓨터 이름>$<Domain>\<ComputerName>$
(S-1-5-20)(S-1-5-20) 네트워크 서비스Network Service <도메인 >\< 컴퓨터 이름>$<Domain>\<ComputerName>$
NT AUTHORITY\NetworkServiceNT AUTHORITY\NetworkService 네트워크 서비스Network Service <도메인 >\< 컴퓨터 이름>$<Domain>\<ComputerName>$
(S-1-5-19)(S-1-5-19) 로컬 서비스Local Service 오류 - 아래를 참조하십시오.Error – see below.
NT AUTHORITY\LocalServiceNT AUTHORITY\LocalService 로컬 서비스Local Service 오류 - 아래를 참조하십시오.Error – see below.

Windows 2000Windows 2000에서 기본 제공 계정을 사용하고 있고 보고서 서버 데이터베이스가 원격이면 오류가 반환됩니다.On Windows 2000Windows 2000, if you are using a built-in account and the report server database is remote, an error is returned.

LocalService 기본 제공 계정이 지정되어 있고 보고서 서버 데이터베이스가 원격이면 오류가 반환됩니다.If the LocalService built-in account is specified and the report server database is remote, an error is returned.

IsWindowsUser 가 true이고 UserName 에 제공된 값을 변환해야 하는 경우, WMI 공급자는 보고서 서버 데이터베이스가 같은 컴퓨터에 있는지 또는 원격 컴퓨터에 있는지를 확인합니다.When IsWindowsUser is true and the value supplied in UserName needs to be translated, the WMI provider determines whether the report server database is located on the same computer or on a remote computer. WMI 공급자는 로컬 설치 여부를 확인하기 위해 다음 값 목록에 대해 DatabaseServerName 속성을 평가합니다.To determine if the installation is local, the WMI provider evaluates the DatabaseServerName property against the following list of values. 일치 항목이 있으면 로컬 데이터베이스이고,If a match is found, the database is local. 그렇지 않으면 원격 데이터베이스입니다.Otherwise, it is remote. 비교 시 대/소문자는 구분되지 않습니다.The comparison is case-insensitive.

DatabaseServerName 값Value of DatabaseServerName 예제Example
“.”“.”
“(local)”“(local)”
“LOCAL”“LOCAL”
localhostlocalhost
<Machinename ><Machinename> testlab14testlab14
<MachineFQDN ><MachineFQDN> example.redmond.microsoft.comexample.redmond.microsoft.com
<Ip 주소 ><IPAddress> 180.012.345,678180.012.345,678

IsWindowsUsertrue로 설정하면 WMI 공급자는 LookupAccountName을 호출하여 계정의 SID를 가져온 다음 LookupAccountSID를 호출하여 이름을 SQL ServerSQL Server 스크립트로 가져옵니다.When IsWindowsUser is set to true, the WMI provider calls LookupAccountName to get the SID for the account and then calls LookupAccountSID to get the name to put in the SQL ServerSQL Server script. 이렇게 하면 사용되는 계정 이름이 SQL ServerSQL Server 유효성 검사를 통과합니다.This ensures that the account name used will pass SQL ServerSQL Server validation.

IsWindowsUserfalse로 설정하면 생성된 스크립트에서 보고서 서버 데이터베이스, 보고서 서버 임시 데이터베이스 및 MSDB 데이터베이스에 대한 RSExec 역할을 부여합니다.When IsWindowsUser is set to false, the generated script grants the RSExec role on the report server database, the report server temporary database, and the MSDB database.

IsWindowsUserfalse로 설정하면 SQL Server 사용자가 SQL ServerSQL Server 에 있어야 스크립트를 성공적으로 실행할 수 있습니다.When IsWindowsUser is set to false, the SQL Server user must already exist on the SQL ServerSQL Server for the script to run successfully.

보고서 서버에 보고서 서버 데이터베이스가 지정되어 있지 않은 경우 GrantRightsToDatabaseUser를 호출하면 오류가 반환됩니다.If the report server does not have a report server database specified, calling GrantRightsToDatabaseUser returns an error.

생성된 스크립트는 SQL Server 2000SQL Server 2000, SQL ServerSQL Server 2005 및 SQL Server 2008SQL Server 2008을 지원합니다.The generated script supports SQL Server 2000SQL Server 2000, SQL ServerSQL Server 2005, and SQL Server 2008SQL Server 2008.

요구 사항Requirements

Namespace: root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Adminroot\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\AdminNamespace: root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Adminroot\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin

관련 항목:See Also

MSReportServer_ConfigurationSetting 멤버MSReportServer_ConfigurationSetting Members