Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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