Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Genererar ett SQL-skript som du kan använda för att ge en användare åtkomst till rapportserverdatabasen. Dessutom ger den åtkomst till andra databaser som krävs för att en rapportserver ska kunna köras. Anroparen ska ansluta till SQL Server-databasservern och köra skriptet.
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);
Parameterar
UserName
Användarnamnet eller Windows-säkerhetsidentifieraren (SID) för den användare som skriptet beviljar rättigheter till.
DatabaseName
Det databasnamn som skriptet ger åtkomst till användaren till.
IsRemote
Ett booleskt värde som anger om databasen är fjärransluten från rapportservern.
IsWindowsUser
Ett booleskt värde som anger om det angivna användarnamnet är en Windows-användare eller en SQL Server-användare.
Skript
[ut] En sträng som innehåller det genererade SQL Server-skriptet.
HRESULT
[ut] Värde som anger om anropet lyckades eller misslyckades.
Returvärde
Returnerar en HRESULT som anger att metodanropet lyckades eller misslyckades. Värdet 0 anger att metodanropet lyckades. Ett värde som inte är noll anger att ett fel uppstod.
Anmärkningar
Om DatabaseName är tomt ignoreras IsRemote och filvärdet för rapportserverns konfigurationsfil används för databasnamnet.
Om IsWindowsUser är inställt på true ska UserName ha formatet <domain>\<username>.
När IsWindowsUser är inställt på true ger det genererade skriptet inloggningsrättigheter till användaren för SQL Server, anger rapportserverdatabasen som standarddatabas och ger RSExec-rollen i rapportserverdatabasen, den temporära rapportserverdatabasen, huvuddatabasen och MSDB-systemdatabasen.
När IsWindowsUser är inställt på true accepterar metoden windows-standard-SID:er som indata. När du anger standardnamn för Windows SID eller tjänstkonto översätts namnet till en användarnamnssträng. Om databasen är lokal översätts kontot till rätt lokaliserad representation av kontot. Om databasen är fjärransluten representeras kontot som datorns konto.
I följande tabell visas konton som översätts och deras fjärrrepresentation.
| Konto/SID som översätts | Eget namn | Fjärrnamn |
|---|---|---|
| (S-1-5-18) | Lokalt system | <Domain>\<ComputerName>$ |
| .\Localsystem | Lokalt system | <Domain>\<ComputerName>$ |
| ComputerName\LocalSystem | Lokalt system | <Domain>\<ComputerName>$ |
| LocalSystem | Lokalt system | <Domain>\<ComputerName>$ |
| (S-1-5-20) | Nätverkstjänst | <Domain>\<ComputerName>$ |
| NT AUTHORITY\NetworkService | Nätverkstjänst | <Domain>\<ComputerName>$ |
| (S-1-5-19) | Lokal tjänst | Error |
| NT AUTHORITY\LocalService | Lokal tjänst | Error |
Om du använder ett inbyggt konto och rapportserverdatabasen är fjärransluten i Windows 2000 returneras ett fel.
Om det inbyggda LocalService-kontot har angetts och rapportserverdatabasen är fjärransluten returneras ett fel.
När IsWindowsUser är sant avgör WMI-providern om rapportserverdatabasen finns på samma dator eller på en fjärrdator. Den här bestämningen görs när värdet som anges i UserName måste översättas. För att avgöra om installationen är lokal utvärderar WMI-providern egenskapen DatabaseServerName mot följande lista med värden. Om en matchning hittas är databasen lokal. Annars är det fjärranslutet. Jämförelsen är skiftlägeskänslig.
| Värdet för DatabaseServerName | Example |
|---|---|
| "." | |
| "(lokal)" | |
| "LOKAL" | |
| localhost | |
| <Datornamn> | testlab14 |
| <MachineFQDN> | example.redmond.microsoft.com |
| <Ip> | 180.012.345,678 |
När IsWindowsUser är inställt på true anropar WMI-providern LookupAccountName för att hämta SID för kontot och anropar sedan LookupAccountSID för att hämta namnet som ska läggas till i SQL Server-skriptet. Den här åtgärden säkerställer att det kontonamn som används klarar SQL Server-valideringen.
När IsWindowsUser är inställt på false ger det genererade skriptet RSExec-rollen i rapportserverdatabasen, den tillfälliga databasen för rapportservern och MSDB-databasen.
När IsWindowsUser är inställt på false måste SQL Server-användaren redan finnas på SQL Server för att skriptet ska kunna köras.
Om rapportservern inte har angett någon rapportserverdatabas returnerar anropet GrantRightsToDatabaseUser ett fel.
Det genererade skriptet stöder SQL Server 2000 (8.x), SQL Server 2005 och SQL Server 2008 (10.0.x).
Kravspecifikation
Namespace:root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin