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

SQL Server 2008:Jak bezpieczna w przypadku awarii jest procedura składowana CLR, która ładuje niezarządzane biblioteki

Ponieważ ten kod był pierwotnie używany z rozszerzonymi procedurami składowanymi, wygląda na to, że jest to kod niezarządzany. Błędy w niezarządzanym kodzie mogą łatwo spowodować awarię Twojego procesu.

Integracja CLR jest znacznie bardziej niezawodna niż rozszerzone procedury składowane, ale kod nadal działa w procesie, więc błędy mogą spowodować wyłączenie lub uszkodzenie programu SQL Server. (Dla porównania, teoretycznie procedura SAFE CLR nie będzie w stanie uszkodzić SQL Server, chociaż nawet może spowodować problemy, które zmniejszą dostępność serwera bez całkowitego wyłączenia SQL Server.)

Zasadniczo jedynymi sposobami na uniknięcie awarii programu SQL Server w tym scenariuszu są:

  1. Unikaj używania funkcji, które ulegają awarii.
  2. Napraw kod błędu.
  3. Uruchom kod w osobnym procesie (uruchom plik wykonywalny, wywołaj usługę Windows, wywołaj usługę sieciową itp.). Aby wykonać tę interakcję, możesz napisać zarządzaną bibliotekę DLL platformy .NET. Najprawdopodobniej nadal będziesz musiał załadować go NIEBEZPIECZNIE, ale – jeśli jest napisany poprawnie – w rzeczywistości może być całkiem bezpieczny.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różne sposoby porównywania schematów i danych tabel SQL Server

  2. Dlaczego moje zapytanie SQL wstawiające wiersz tabeli nie działa poprawnie?

  3. Wzorzec singletona dla kontekstu danych

  4. Jak używać DOWOLNEGO / NIEKTÓREGO operatora logicznego w SQL Server — samouczek SQL Server / TSQL, część 127

  5. Utworzyć użytkownika w bazie danych Azure SQL przy użyciu funkcji platformy Azure?