Megosztás a következőn keresztül:


ConfigurationSetting metódus – GenerateDatabaseRightsScript

Létrehoz egy SQL-szkriptet, amellyel hozzáférést adhat a felhasználónak a jelentéskészítő kiszolgáló adatbázisához. Emellett hozzáférést biztosít a jelentéskészítő kiszolgáló futtatásához szükséges egyéb adatbázisokhoz is. A hívónak csatlakoznia kell az SQL Server adatbázis-kiszolgálóhoz, és végre kell hajtania a szkriptet.

Szemantika

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

Paraméterek

UserName
Annak a felhasználónak a felhasználóneve vagy a Windows biztonsági azonosítója (SID), amelyhez a szkript jogosultságokat biztosít.

DatabaseName
Az adatbázis neve, amelyhez a szkript hozzáférést biztosít a felhasználó számára.

IsRemote
Logikai érték annak jelzésére, hogy az adatbázis távol van-e a jelentéskészítő kiszolgálótól.

IsWindowsUser
Logikai érték, amely azt jelzi, hogy a megadott felhasználónév Windows-felhasználó vagy SQL Server-felhasználó-e.

Szkript
[kifelé] A létrehozott SQL Server-szkriptet tartalmazó sztring.

HRESULT
[kifelé] Érték, amely azt jelzi, hogy a hívás sikeres vagy sikertelen volt-e.

Visszaadott érték

A metódushívás sikerességét vagy sikertelenségét jelző HRESULT értéket ad vissza. A 0 érték azt jelzi, hogy a metódushívás sikeres volt. A nemero érték azt jelzi, hogy hiba történt.

Megjegyzések

Ha a DatabaseName üres, akkor a rendszer figyelmen kívül hagyja az IsRemote értéket, és a jelentéskészítő kiszolgáló konfigurációs fájlértékét használja az adatbázisnévhez.

Ha az IsWindowsUserértéke igaz, akkor a <domain>\<username>UserName formátumnak kell lennie.

Ha az IsWindowsUserértéke igaz, a létrehozott szkript bejelentkezési jogosultságokat ad a felhasználónak az SQL Serverhez, alapértelmezett adatbázisként állítja be a jelentéskészítő kiszolgáló adatbázisát, és megadja az RSExec szerepkört a jelentéskészítő kiszolgáló adatbázisán, a jelentéskészítő kiszolgáló ideiglenes adatbázisán, a fő adatbázison és az MSDB rendszeradatbázison.

Ha az IsWindowsUserértéke igaz, a metódus bemenetként fogadja el a standard Windows SID-ket. Ha szabványos Windows SID- vagy szolgáltatásfióknevet ad meg, a név egy felhasználónév-sztringre lesz lefordítva. Ha az adatbázis helyi, a rendszer lefordítja a fiókot a fiók megfelelő honosított ábrázolására. Ha az adatbázis távoli, a fiók a számítógép fiókjaként jelenik meg.

Az alábbi táblázat a lefordított fiókokat és azok távoli megjelenítését mutatja be.

Lefordított fiók/SID Közönséges név Távoli név
(S-1-5-18) Helyi rendszer <Tartomány>\<ComputerName>$
.\Localsystem Helyi rendszer <Tartomány>\<ComputerName>$
ComputerName\LocalSystem Helyi rendszer <Tartomány>\<ComputerName>$
LocalSystem Helyi rendszer <Tartomány>\<ComputerName>$
(S-1-5-20) Hálózati szolgáltatás <Tartomány>\<ComputerName>$
NT AUTHORITY\NetworkService Hálózati szolgáltatás <Tartomány>\<ComputerName>$
(S-1-5-19) Helyi szolgáltatás Error
NT AUTHORITY\LocalService Helyi szolgáltatás Error

Windows 2000 rendszeren, ha beépített fiókot használ, és a jelentéskészítő kiszolgáló adatbázisa távoli, a rendszer hibát ad vissza.

Ha a LocalService beépített fiókja meg van adva, és a jelentéskészítő kiszolgáló adatbázisa távoli, a rendszer hibát ad vissza.

Ha az IsWindowsUserigaz, a WMI-szolgáltató határozza meg, hogy a jelentéskészítő kiszolgáló adatbázisa ugyanazon a számítógépen vagy egy távoli számítógépen található-e. Ezt a meghatározást akkor kell meghatározni, ha a UserName-ben megadott értéket le kell fordítani. Annak megállapításához, hogy a telepítés helyi-e, a WMI-szolgáltató kiértékeli a DatabaseServerName tulajdonságot az alábbi értékek listájával. Ha talál egyezést, az adatbázis helyi. Ellenkező esetben távoli. Az összehasonlítás kis- és nagybetűket nem érzékelyítő.

A DatabaseServerName értéke Example
"."
"(helyi)"
"HELYI"
localhost
<Gépnév> testlab14
<MachineFQDN> example.redmond.microsoft.com
<IPAddress> 180.012.345,678

Ha az IsWindowsUserértéke igaz, a WMI-szolgáltató meghívja a LookupAccountName nevet a fiók SID-azonosítójának lekéréséhez, majd meghívja a LookupAccountSID azonosítót , hogy lekérje az SQL Server-szkriptben elhelyezendő nevet. Ez a művelet biztosítja, hogy a használt fióknév megfelelteti az SQL Server érvényesítését.

Ha az IsWindowsUserértéke hamis, a létrehozott szkript megadja az RSExec szerepkört a jelentéskészítő kiszolgáló adatbázisában, a jelentéskészítő kiszolgáló ideiglenes adatbázisában és az MSDB-adatbázisban.

Ha az IsWindowsUserértéke hamis, az SQL Server-felhasználónak már léteznie kell az SQL Serveren a szkript sikeres futtatásához.

Ha a jelentéskészítő kiszolgálóhoz nincs megadva jelentéskészítő kiszolgáló adatbázisa, a GrantRightsToDatabaseUser meghívása hibát ad vissza.

A létrehozott szkript támogatja az SQL Server 2000 (8.x), az SQL Server 2005 és az SQL Server 2008 (10.0.x) használatát.

Requirements

Névtér:root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin