Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vygeneruje skript SQL, který můžete použít k udělení přístupu uživatele k databázi serveru sestav. Kromě toho uděluje přístup k jiným databázím potřebným ke spuštění serveru sestav. Volající by se měl připojit k databázovému serveru SQL Serveru a spustit skript.
Syntaxe
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);
Parametry
UserName
Uživatelské jméno nebo identifikátor zabezpečení systému Windows (SID) uživatele, kterému skript uděluje práva.
DatabaseName
Název databáze, ke které skript uděluje přístup uživateli.
IsRemote
Logická hodnota označující, zda je databáze vzdálená od serveru sestav.
IsWindowsUser
Logická hodnota označující, jestli je zadané uživatelské jméno uživatelem Systému Windows nebo uživatelem SQL Serveru.
Skript
[ven] Řetězec obsahující vygenerovaný skript SQL Serveru.
HRESULT
[ven] Hodnota označující, jestli bylo volání úspěšné nebo neúspěšné.
Návratová hodnota
Vrátí hodnotu HRESULT označující úspěch nebo selhání volání metody. Hodnota 0 označuje, že volání metody bylo úspěšné. Nenulová hodnota označuje, že došlo k chybě.
Poznámky
Pokud je databaseName prázdný, je isRemote ignorován a hodnota konfiguračního souboru serveru sestav se použije pro název databáze.
Je-li IsWindowsUser nastavena na hodnotu true, userName by měl být ve formátu <domain>\<username>.
Pokud je isWindowsUser nastavena na hodnotu true, vygenerovaný skript udělí uživateli oprávnění k přihlášení pro SQL Server, nastaví databázi serveru sestav jako výchozí databázi a udělí roli RSExec v databázi serveru sestav, dočasné databázi serveru sestav, hlavní databázi a systémovou databázi MSDB.
Je-li IsWindowsUser nastavena na true, metoda přijímá standardní identifikátory SID systému Windows jako vstup. Když zadáte standardní název siD systému Windows nebo název účtu služby, přeloží se název na řetězec uživatelského jména. Pokud je databáze místní, účet se přeloží na správnou lokalizovanou reprezentaci účtu. Pokud je databáze vzdálená, účet je reprezentován jako účet počítače.
Následující tabulka uvádí účty, které jsou přeloženy a jejich vzdálené vyjádření.
| Účet / SID přeložený | Běžný název | Vzdálený název |
|---|---|---|
| (S-1-5-18) | Místní systém | <Doména>\<Název_počítače>$ |
| .\Localsystem | Místní systém | <Doména>\<Název_počítače>$ |
| Název_počítače\LocalSystem | Místní systém | <Doména>\<Název_počítače>$ |
| LocalSystem | Místní systém | <Doména>\<Název_počítače>$ |
| (S-1-5-20) | Síťová služba | <Doména>\<Název_počítače>$ |
| NT AUTHORITY\NetworkService | Síťová služba | <Doména>\<Název_počítače>$ |
| (S-1-5-19) | Místní služba | Error |
| NT AUTHORITY\LocalService | Místní služba | Error |
Pokud ve Windows 2000 používáte integrovaný účet a databáze serveru sestav je vzdálená, vrátí se chyba.
Pokud je zadaný předdefinovaný účet LocalService a databáze serveru sestav je vzdálená, vrátí se chyba.
Pokud je IsWindowsUsertrue, zprostředkovatel WMI určuje, zda je serverová databáze sestav umístěna ve stejném počítači nebo ve vzdáleném počítači. Toto určení se provede, když je potřeba přeložit hodnotu zadanou v uživatelském názvu . Pokud chcete zjistit, jestli je instalace místní, zprostředkovatel služby WMI vyhodnotí vlastnost DatabaseServerName s následujícím seznamem hodnot. Pokud se najde shoda, je databáze místní. Jinak je to vzdálené. Porovnání není citlivé na rozdíly mezi malými a velkými písmeny.
| Hodnota DatabaseServerName | Example |
|---|---|
| "." | |
| "(local)" | |
| "LOCAL" | |
| localhost | |
| <Machinename> | testlab14 |
| <MachineFQDN> | example.redmond.microsoft.com |
| <IPAddress> | 180.012.345,678 |
Pokud je IsWindowsUser nastaven na hodnotu true, zprostředkovatel WMI volá LookupAccountName pro získání identifikátoru SID pro účet a potom zavolá LookupAccountSID , aby získal název, který má být vložen do skriptu SQL Serveru. Tato akce zajistí, že název účtu použitý projde ověřením SYSTÉMU SQL Server.
Pokud je isWindowsUser nastavena na hodnotu false, vygenerovaný skript udělí roli RSExec v databázi serveru sestav, dočasné databázi serveru sestav a databázi MSDB.
Pokud je isWindowsUser nastavena na hodnotu false, musí uživatel SQL Serveru již existovat na SQL Serveru, aby se skript úspěšně spustil.
Pokud server sestav nemá zadanou databázi serveru sestav, vrátí volání GrantRightsToDatabaseUser chybu.
Vygenerovaný skript podporuje SQL Server 2000 (8.x), SQL Server 2005 a SQL Server 2008 (10.0.x).
Požadavky
Obor názvů:root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin