Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee genereert u een SQL-script dat u kunt gebruiken om een gebruiker toegang te verlenen tot de database van de rapportserver. Daarnaast verleent het toegang tot andere databases die nodig zijn om een rapportserver uit te voeren. De aanroeper moet verbinding maken met de SQL Server-databaseserver en het script uitvoeren.
Syntaxis
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);
Parameterwaarden
UserName
De gebruikersnaam of Windows-beveiligings-id (SID) van de gebruiker waaraan het script rechten verleent.
DatabaseName-
De databasenaam waaraan het script toegang verleent tot de gebruiker.
IsRemote
Een Booleaanse waarde die aangeeft of de database extern is van de rapportserver.
IsWindowsUser
Een Booleaanse waarde die aangeeft of de opgegeven gebruikersnaam een Windows-gebruiker of een SQL Server-gebruiker is.
Script
[uit] Een tekenreeks met het gegenereerde SQL Server-script.
HRESULT
[uit] Waarde die aangeeft of de aanroep is geslaagd of mislukt.
Retourwaarde
Hiermee wordt een HRESULT geretourneerd die aangeeft dat de methodeaanroep is geslaagd of mislukt. Een waarde van 0 geeft aan dat de methode-aanroep is geslaagd. Een niet-nulwaarde geeft aan dat er een fout is opgetreden.
Opmerkingen
Als DatabaseName leeg is, wordt IsRemote genegeerd en wordt de waarde van het configuratiebestand van de rapportserver gebruikt voor de databasenaam.
Als IsWindowsUser is ingesteld op true, moet UserName de indeling <domain>\<username>hebben.
Wanneer IsWindowsUser is ingesteld op true, verleent het gegenereerde script aanmeldingsrechten aan de gebruiker voor de SQL Server, het instellen van de rapportserverdatabase als de standaarddatabase en verleent de RSExec-rol op de rapportserverdatabase, de tijdelijke database van de rapportserver, de hoofddatabase en de MSDB-systeemdatabase.
Wanneer IsWindowsUser is ingesteld op true, accepteert de methode standaard Windows-SID's als invoer. Wanneer u de standaard windows-SID of serviceaccountnaam opgeeft, wordt de naam omgezet in een tekenreeks voor de gebruikersnaam. Als de database lokaal is, wordt het account vertaald naar de juiste gelokaliseerde weergave van het account. Als de database extern is, wordt het account weergegeven als het account van de computer.
In de volgende tabel ziet u accounts die worden vertaald en hun externe weergave.
| Account/SID die wordt vertaald | Algemene naam | Externe naam |
|---|---|---|
| (S-1-5-18) | Lokaal systeem | <Domain>\<ComputerName>$ |
| .\Localsystem | Lokaal systeem | <Domain>\<ComputerName>$ |
| Computernaam\LocalSystem | Lokaal systeem | <Domain>\<ComputerName>$ |
| LocalSystem | Lokaal systeem | <Domain>\<ComputerName>$ |
| (S-1-5-20) | Netwerkservice | <Domain>\<ComputerName>$ |
| NT AUTHORITY\NetworkService | Netwerkservice | <Domain>\<ComputerName>$ |
| (S-1-5-19) | Lokale dienstverlening | Fout |
| NT AUTHORITY\LocalService | Lokale dienstverlening | Fout |
Als u in Windows 2000 een ingebouwd account gebruikt en de rapportserverdatabase extern is, wordt er een fout geretourneerd.
Als het ingebouwde account LocalService is opgegeven en de rapportserverdatabase extern is, wordt er een fout geretourneerd.
Wanneer IsWindowsUserwaar is, bepaalt de WMI-provider of de rapportserverdatabase zich op dezelfde computer of op een externe computer bevindt. Deze bepaling wordt gemaakt wanneer de waarde die is opgegeven in UserName moet worden vertaald. Om te bepalen of de installatie lokaal is, evalueert de WMI-provider de eigenschap DatabaseServerName op basis van de volgende lijst met waarden. Als er een overeenkomst wordt gevonden, is de database lokaal. Anders is het extern. De vergelijking is niet hoofdlettergevoelig.
| Waarde van DatabaseServerName | Example |
|---|---|
| "." | |
| "(lokaal)" | |
| "LOCAL" | |
| localhost | |
| <Machinename> | testlab14 |
| <MachineFQDN> | example.redmond.microsoft.com |
| <IPAddress> | 180.012.345,678 |
Wanneer IsWindowsUser is ingesteld op true, roept de WMI-provider LookupAccountName aan om de SID voor het account op te halen en roept vervolgens LookupAccountSID aan om de naam op te halen die in het SQL Server-script moet worden geplaatst. Deze actie zorgt ervoor dat de gebruikte accountnaam sql Server-validatie doorgeeft.
Wanneer IsWindowsUser is ingesteld op false, verleent het gegenereerde script de RSExec-rol op de rapportserverdatabase, de tijdelijke database van de rapportserver en de MSDB-database.
Wanneer IsWindowsUser is ingesteld op false, moet de SQL Server-gebruiker al bestaan op de SQL Server om het script te kunnen uitvoeren.
Als op de rapportserver geen rapportserverdatabase is opgegeven, retourneert het aanroepen van GrantRightsToDatabaseUser een fout.
Het gegenereerde script ondersteunt SQL Server 2000 (8.x), SQL Server 2005 en SQL Server 2008 (10.0.x).
Requirements
Naamruimte:root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin