Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego xp_cmdshell nie działa w programie SQL Server 2012?

Zostało to wyłączone z pudełka, począwszy od SQL Server 2005, kiedy wprowadzono Narzędzie do konfiguracji obszaru powierzchni , aby domyślnie zwiększyć bezpieczeństwo programu SQL Server. To narzędzie zostało wycofane, ale nadal możesz kontrolować zachowanie za pomocą sp_configure . Przykład jest pokazany w MSDN :

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

(Ja także blogowałem o tym wiele lat temu .)

Powodem jest to, że jest to potencjalna luka w zabezpieczeniach. Jeśli zezwolisz SQL Server na wykonanie xp_cmdshell , to teoretycznie mogą wysłać dowolne tam polecenie systemu operacyjnego, omijając wszelkie zabezpieczenia, o których myślałeś, że masz. Jest to szczególnie problematyczne, gdy konto usługi SQL Server i/lub konto proxy zostały podniesione do poziomu sysadmin lub innych, ponieważ jest to łatwiejsze niż jawne definiowanie tylko dokładnie tych czynności, które powinny być w stanie zrobić.

Zamiast włączać i wyłączać go w celu obsługi interakcji z wierszem poleceń, popularnym sposobem ujawnienia funkcji systemu operacyjnego przy zachowaniu pewnej kontroli nad bezpieczeństwem jest zaimplementowanie potrzebnych funkcji na poziomie systemu operacyjnego za pomocą SQL-CLR. Oto dobry punkt wyjścia do uzyskania dostępu do system plików z CLR (jednak jeśli rozejrzysz się, znajdziesz znacznie bardziej nowoczesne i wyczerpujące podejścia).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie znaleziono Menedżera konfiguracji serwera SQL

  2. Znajdowanie poprzedniej niezerowej wartości z listy uporządkowanej według daty

  3. Potrzebujesz pomocy w dynamicznym zapytaniu z klauzulą ​​IN

  4. Zdalne połączenie z bazą danych otwarte przez długi czas

  5. Czy istnieje sposób na pobranie definicji widoku z SQL Server przy użyciu zwykłego ADO?