Metodo ConfigurationSetting - GenerateDatabaseRightsScriptConfigurationSetting Method - GenerateDatabaseRightsScript

Genera uno script SQL che può essere utilizzato per concedere a un utente i diritti per il database del server di report e per gli altri database richiesti affinché un server di report venga eseguito.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. Il chiamante deve connettersi al server di database SQL ServerSQL Server ed eseguire lo script.The caller is expected to connect to the SQL ServerSQL Server database server and execute the script.

SintassiSyntax

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

ParametriParameters

UserNameUserName
Nome utente o ID di sicurezza (SID) di Windows dell'utente al quale lo script concederà i diritti.The user name or Windows security identifier (SID) of the user to which the script will grant rights.

DatabaseNameDatabaseName
Nome del database al quale lo script concederà l'accesso all'utente.The database name to which the script will grant access to the user.

IsRemoteIsRemote
Valore booleano a che indica se il database è remoto per il server di report.A Boolean value to indicating whether the database is remote from the report server.

IsWindowsUserIsWindowsUser
Valore booleano che indica se il nome utente specificato è un utente di Windows o un utente di SQL ServerSQL Server .A Boolean value indicating whether the specified user name is a Windows user or a SQL ServerSQL Server user.

ScriptScript
[out] Stringa che contiene lo script SQL ServerSQL Server generato.[out] A string containing the generated SQL ServerSQL Server script.

HRESULTHRESULT
[out] Valore che indica se la chiamata ha avuto esito positivo o negativo.[out] Value indicating whether the call succeeded or failed.

Valore restituitoReturn Value

Restituisce un HRESULT che indica l'esito positivo o negativo della chiamata al metodo.Returns an HRESULT indicating success or failure of the method call. Un valore pari a 0 indica l'esito positivo della chiamata al metodo.A value of 0 indicates that the method call was successful. Un valore diverso da zero indica che si è verificato un errore.A non-zero value indicates that an error has occurred.

OsservazioniRemarks

Se DatabaseName è vuoto, IsRemote viene ignorato e per il nome del database viene usato il valore del file di configurazione del server di report.If DatabaseName is empty then IsRemote is ignored and the report server configuration file value is used for the database name.

Se IsWindowsUser è impostato su true, UserName deve essere nel formato <dominio >\< nome utente>.If IsWindowsUser is set to true, UserName should be in the format <domain>\<username>.

Quando IsWindowsUser è impostato su true, lo script generato concede all'utente i diritti di accesso per SQL ServerSQL Server, impostando il database del server di report come database predefinito, e concede il ruolo RSExec nel database del server di report, nel database temporaneo del server di report, nel database master e nel database di sistema MSDB.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.

Quando IsWindowsUser è impostato su true, il metodo accetta come input i SID standard di Windows.When IsWindowsUser is set to true, the method accepts standard Windows SIDs as input. Quando viene fornito un SID standard di Windows o un nome dell'account di servizio, questo viene convertito in una stringa del nome utente.When a standard Windows SID or service account name is supplied, it is translated to a user name string. Se il database è locale, l'account viene convertito nella rappresentazione localizzata corretta dell'account.If the database is local, the account is translated to the correct localized representation of the account. Se il database è remoto, l'account viene rappresentato come account del computer.If the database is remote, the account is represented as the computer’s account.

Nella tabella seguente vengono mostrati gli account convertiti e la relativa rappresentazione remota.The following table shows accounts that are translated and their remote representation.

Account / SID convertitoAccount / SID that is translated Nome comuneCommon Name Nome remotoRemote Name
(S-1-5-18)(S-1-5-18) Sistema localeLocal System <Dominio >\< ComputerName>$<Domain>\<ComputerName>$
.\LocalSystem.\LocalSystem Sistema localeLocal System <Dominio >\< ComputerName>$<Domain>\<ComputerName>$
ComputerName\LocalSystemComputerName\LocalSystem Sistema localeLocal System <Dominio >\< ComputerName>$<Domain>\<ComputerName>$
LocalSystemLocalSystem Sistema localeLocal System <Dominio >\< ComputerName>$<Domain>\<ComputerName>$
(S-1-5-20)(S-1-5-20) Servizio di reteNetwork Service <Dominio >\< ComputerName>$<Domain>\<ComputerName>$
NT AUTHORITY\NetworkServiceNT AUTHORITY\NetworkService Servizio di reteNetwork Service <Dominio >\< ComputerName>$<Domain>\<ComputerName>$
(S-1-5-19)(S-1-5-19) Servizio localeLocal Service Errore, vedere di seguito.Error – see below.
NT AUTHORITY\LocalServiceNT AUTHORITY\LocalService Servizio localeLocal Service Errore, vedere di seguito.Error – see below.

In Windows 2000Windows 2000, se si utilizza un account predefinito e il database del server di report è remoto, viene restituito un errore.On Windows 2000Windows 2000, if you are using a built-in account and the report server database is remote, an error is returned.

Se l'account LocalService predefinito è specificato e il database del server di report è remoto, viene restituito un errore.If the LocalService built-in account is specified and the report server database is remote, an error is returned.

Quando IsWindowsUser è True e il valore fornito in UserName deve essere convertito, il provider WMI determina se il database del server di report si trova sullo stesso computer o su un computer remoto.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. Per determinare se l'installazione è locale, il provider WMI valuta la proprietà DatabaseServerName rispetto al seguente elenco di valori.To determine if the installation is local, the WMI provider evaluates the DatabaseServerName property against the following list of values. Se viene rilevata una corrispondenza, il database è locale.If a match is found, the database is local. In caso contrario, è remoto.Otherwise, it is remote. Il confronto non effettua la distinzione tra maiuscole e minuscole.The comparison is case-insensitive.

Valore di DatabaseServerNameValue of DatabaseServerName EsempioExample
“.”“.”
"(local)"“(local)”
"LOCAL"“LOCAL”
localhostlocalhost
<MachineName ><Machinename> testlab14testlab14
<MachineFQDN ><MachineFQDN> example.redmond.microsoft.comexample.redmond.microsoft.com
<IPAddress ><IPAddress> 180.012.345,678180.012.345,678

Quando IsWindowsUser è impostato su true, il provider WMI chiama LookupAccountName per ottenere il SID per l'account, quindi chiama LookupAccountSID per ottenere il nome da inserire nello script 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. In questo modo si garantisce che il nome account utilizzato passerà la convalida SQL ServerSQL Server .This ensures that the account name used will pass SQL ServerSQL Server validation.

Quando IsWindowsUser è impostato su false, lo script generato concede il ruolo RSExec nel database del server di report, nel database temporaneo del server di report e nel database MSDB.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.

Quando IsWindowsUser è impostato su false, per garantire la corretta esecuzione dello script è necessario che l'utente di SQL Server esista già in 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.

Se il server di report non dispone di un database del server di report specificato, la chiamata a GrantRightsToDatabaseUser restituisce un errore.If the report server does not have a report server database specified, calling GrantRightsToDatabaseUser returns an error.

Lo script generato supporta SQL Server 2000SQL Server 2000, SQL ServerSQL Server 2005 e SQL Server 2008SQL Server 2008.The generated script supports SQL Server 2000SQL Server 2000, SQL ServerSQL Server 2005, and SQL Server 2008SQL Server 2008.

RequisitiRequirements

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

Vedere ancheSee Also

Membri di MSReportServer_ConfigurationSettingMSReportServer_ConfigurationSetting Members