Jak povolit účtů není členem "xp_cmdshell" provedení rozšířené uložené procedury SQL Server 2000

Překlady článku Překlady článku
ID článku: 890775 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje, jak nakonfigurovat SQL Microsoft Windows na úrovni Účet serveru proxy server Agent pro přihlášení SQL, které nejsou členy sysadmin pevné role serveru. Kromě toho článek obsahuje odkazy Další informace o řešení problémů, které mohou nastat při pokusu nastavení účtu serveru proxy.

ÚVOD

Na xp_cmdshell Rozšířená uložená procedura vyvolá z příkazové prostředí systému Windows v rámci Microsoft SQL Server 2000. Když xp_cmdshell Rozšířená uložená procedura je spuštěn členem sysadmin pevné role serveru, spustí proces příkazového prostředí systému Windows s kontextu zabezpečení účtu služby systému Windows, serveru SQL Server. Pro například pokud je SQL Server spuštěn v přihlášení k systému Windows, který má pro správu práva v počítači uživatele, který otevře příkazový řádek s xp_cmdshell Rozšířená uložená procedura obdrží přístup k systému Windows jako místní správce. Ve výchozím nastavení oprávnění ke spuštění xp_cmdshell Rozšířená uložená procedura je poskytnuta pouze pro členy sysadmin pevné role serveru. Toto oprávnění umožňuje zabránit zvýšení úrovně práva.

Pokud chcete spustit nové procesy systému Windows s snížené úroveň práv, můžete použít ke konfiguraci účtu serveru SQL Server Agent serveru proxy Účet systému Windows s odpovídající úroveň práv.

Další informace

Při pokusu spustit xp_cmdshell Rozšířená uložená procedura z přihlášení serveru SQL Server, který není člen sysadmin role serveru a účet Agent serveru SQL Server proxy nebyl správně nastaven, může se zobrazit chybové zprávy, které jsou podobné následující:
Msg 50001, úroveň 1, stát 50001
xpsql.cpp: Chyba 997 z GetProxyAccount na řádku 499
Zpráva 50001, Úroveň 1, stát 50001
xpsql.cpp: Chyba 317 z GetProxyAccount na řádek 499
Msg 50001, úroveň 1, stát 50001
xpsql.cpp: došlo k chybě 0 z GetProxyAccount na řádku 499
Msg 50001, úroveň 1, stát 50001
xpsql.cpp: Chyba 87 GetProxyAccount v řádku 499
Pokud máte jiné sysadmin uživatelům spustit xp_cmdshell rozšířené uložené procedury SQL Server 2000, je nutné nakonfigurovat účet serveru proxy a spouštěcí účet serveru SQL Server jako člen místní skupiny Administrators. Když SQL Server spustí úlohy nebo příkazy pro uživatele, kteří nejsou členy pevné role serveru sysadmin, SQL Server Agent a xp_cmdshell Rozšířená uložená procedura použít účet serveru proxy. Windows bezpečnostních pověření pro účet serveru proxy jsou uloženy v databázi tajemství místního úřadu zabezpečení (LSA). K těmto informacím pouze správci systému Windows. Proto pokud spouštěcí účet serveru SQL Server není členem místní skupiny Administrators, uživatel nemůže ukládat a načítat pověření zabezpečení systému Windows se přihlásit jako účet serveru proxy a xp_cmdshell Rozšířená uložená procedura se nezdaří. Aby se umožnilo uživatelům bez sysadmin spustit xp_cmdshell Rozšířená uložená procedura, spouštěcí účet serveru SQL Server musí být členem místní skupiny Administrators.

Konfigurace účtu serveru proxy pro SQL Přihlášení na server, které nejsou členy sysadmin pevné role serveru, použijte jednu z následujících metod.

Metoda 1: Pomocí programu SQL Server Enterprise Manager

Nakonfigurujte účet systému Windows

Nastavení účtu systému Windows a umožnit uživatelům bez sysadmin spustit na xp_cmdshell Rozšířená uložená procedura, postupujte takto:
  1. Spusťte správce SQL Server Enterprise Manager.
  2. V programu SQL Server Enterprise Manager rozbalte položku. Microsoft SQL Servera potom rozbalte položku SQL Server Skupiny.
  3. Rozbalte instanci serveru SQL Server, který chcete nastavit pro účet serveru proxy.
  4. Rozbalit Správa, klepněte pravým tlačítkem myši SQL Agent serverua klepněte na tlačítko Vlastnosti.
  5. V Vlastnosti agenta serveru SQL Dialogové okno Klepněte Systémové úlohy na kartě.
  6. Ve skupinovém rámečku Není členem úlohy krok proxy účet, Zrušte zaškrtnutí políčka Lze spustit pouze uživatelé s oprávněními SysAdmin Kroky CmdExec a aktivní úlohy Zaškrtávací políčko.
  7. V Agent serveru SQL Server proxy účetDialogové okno, zadejte název v účtu systému Windows Uživatelské jménopole.
  8. V Heslo Zadejte Windows heslo.
  9. V Domény Zadejte doménu, účet systému Windows je členem a klepněte na tlačítko OK dvě časy.

Přidání účtu serveru SQL Server login

Přidání účtu serveru SQL Server login, které chcete udělit oprávnění ke spouštění xp_cmdshell Rozšířená uložená procedura, postupujte takto:
  1. V programu SQL Server organizace Manager rozbalte položku.Zabezpečení.
  2. V Přihlášení podokno, klepněte pravým tlačítkem myši SQL Server přihlašovací účet, který chcete udělit oprávnění a klepněte na tlačítkoVlastnosti.

    Poznámka: Pokud již není přidán účet, můžete vytvořit proxy účet systému Windows jako účet pro přihlášení.
  3. V Vlastnosti přihlášení na Server SQL Dialogové okno Klepněte Přístup k databázi na kartě.
  4. V Určit, které databáze lze přistupovat pomocí Toto přihlášení seznam, vyberte klepnutím Povolení Zaškrtávací políčko pro Předloha databáze a poté klepněte na OK.
  5. Rozbalit Databáze, rozbalte položkuPředlohaa klepněte na tlačítko Rozšířit uloženy Postupy.
  6. Vyhledejte a klepněte pravým tlačítkem myšixp_cmdshell rozšířené uložené procedury a potom klepněte na tlačítkoVlastnosti.
  7. V Rozšířená uložená procedura Vlastnosti Dialogové okno, klepněte na tlačítko Oprávnění.
  8. Klepnutím vyberte EXEC Zaškrtávací políčko Spustit přihlašovací účet serveru SQL Server, který chcete udělit oprávnění, a Klepněte na tlačítko OK dvakrát.

Metoda 2: Spuštění skriptu jazyka Transact-SQL

Spusťte následující skript jazyka Transact-SQL umožňující systému Windows účet pro spouštění xp_cmdshell Rozšířená uložená procedura:
-- Set database to master.
USE master
GO

-- Add a valid Windows account as proxy account.
EXECUTE xp_sqlagent_proxy_account N'SET'
                        , N'<DomainName>'
                        , N'<WindowsAccount>'
                        , N'<WindowsPassword>'
GO
-- Get the proxy account to determine whether it is set up correctly. 
EXECUTE xp_sqlagent_proxy_account N'GET'
GO

-- Enable non-system administrators to run the job and to execute xp_cmdshell.
EXECUTE msdb..sp_set_sqlagent_properties @sysadmin_only = 0
GO
Poznámka: Tento skript <domainname></domainname> je doména, která účet systému Windows je členem. <windowsaccount></windowsaccount> je název účtu systému Windows. <windowspassword></windowspassword> je heslo Účet systému Windows.

Přihlašovací účet serveru SQL Server, který chcete přidat udělit oprávnění ke spuštění xp_cmdshell Rozšířená uložená procedura, spusťte následující skript jazyka Transact-SQL:
USE master
GO

-- Grant database access to the SQL Server login account that you want to provide access.
EXEC sp_grantdbaccess '<SQLLogin>'
GO

-- Grant execute permission on xp_cmdshell to the SQL Server login account.
GRANT exec ON xp_cmdshell TO <SQLLogin>
GO
Poznámka: Tento skript <sqllogin></sqllogin> je přihlašovací jméno SQL Server, který chcete udělit oprávnění ke spuštění xp_cmdshell rozšířené uložené procedury.

Poznámka: Server proxy je účet systému Windows v jehož zabezpečení kontext spuštění úlohy Agent serveru SQL Server nebo příkazy příkazového řádku. Pokud jste nastavit účet systému Windows pro účet serveru proxy Agent serveru SQL Server, musíte Poskytněte účtu uživatele systému Windows úroveň "Přihlásit jako dávkovou úlohu" doprava.

Odkazy

Další informace o xp_cmdshell Rozšířená uložená procedura, naleznete v tématu "Reference jazyka Transact-SQL" v SQL Server Online.

Další informace o serveru SQL Server Agent serveru proxy účet, navštivte následující Web společnosti Microsoft Developer Network (MSDN) weby:
xp_sqlagent_proxy_account
http://msdn2.microsoft.com/en-us/library/aa260700 (SQL.80) .aspx

xp_cmdshell
http://msdn2.microsoft.com/en-us/library/aa369561.aspx

Nastavení vytvořit účty služeb systému Windows
http://msdn2.microsoft.com/en-us/library/aa176564 (SQL.80) .aspx
Další informace o tom, jak nastavit příslušná oprávnění proxy účet, klepněte na následující číslo článku databáze Microsoft Knowledge Base:
283811Změna účtu služby SQL Server nebo SQL Server Agent bez použití SQL Enterprise Manager na serveru SQL Server 2000 nebo SQL Server Správce konfigurace SQL Server 2005

Vlastnosti

ID článku: 890775 - Poslední aktualizace: 22. května 2011 - Revize: 5.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
Klíčová slova: 
kbinfo kbhowto kbmt KB890775 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:890775

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com