Montag, 20. September 2010

T-SQL: xp_cmdshell verwenden

Die erweiterte Systemprozedur xp_cmdshell ermöglicht die Ausführung von Betriebssystemkommandos.
Standardmäßig ist diese Prozedur deaktiviert.

Vorgehensweise zur Benutzung von xp_cmdshell

1. Aktivierung in SQL Serer 2005 über die Oberflächenkonfiguration, in SQL Server 2008 im SQL Server Management Studio im Kontextmenü Facets des Serverknotens, Facet "Surface Area Configuration" , Facet Property XPCmdShellEnabled auf True setzen.

2. Berechtigung EXECUTE  für gewünschten Datenbankbenutzer in Eigenschaften der sys.xp_cmdshell in master-DB setzen (Databases\System Databases\Programmability\Extended Stored Procedures\System Extended Stored Procedures\sys.xp_cmdshell)

3. einen Windows-Account mit Zugriffsrechten auf das Betriebssystem als cmdshell-Proxy einrichten

EXEC sp_xp_cmdshell_proxy_account 'MyDomain\MyUserName', 'myDomainPassword'

Die Ausführung sollte als Windows-Login eines Windows-Administrators erfolgen, damit das Passwort aus der Windows-Kontenverwaltung abgerufen werden kann.

4. Verwendung

EXEC xp_cmdshell 'dir c:\'

Keine Kommentare: