Integracja środowiska uruchomieniowego języka wspólnego (CLR)
Dotyczy:programu SQL ServerAzure SQL Managed Instance
Program SQL Server i azure SQL Managed Instance umożliwiają zaimplementowanie niektórych funkcji za pomocą języków platformy .NET przy użyciu natywnej integracji środowiska uruchomieniowego języka wspólnego (CLR) jako modułów po stronie serwera programu SQL Server (procedur, funkcji i wyzwalaczy). ClR dostarcza kod zarządzany z usługami, takimi jak integracja między językami, zabezpieczenia dostępu do kodu, zarządzanie okresem istnienia obiektów oraz obsługa debugowania i profilowania.
W przypadku użytkowników programu SQL Server i deweloperów aplikacji integracja środowiska CLR oznacza, że można pisać procedury składowane, wyzwalacze, typy zdefiniowane przez użytkownika, funkcje zdefiniowane przez użytkownika (skalarne i tabele) oraz funkcje agregujące zdefiniowane przez użytkownika przy użyciu dowolnego języka .NET Framework, w tym języka C# Visual Basic .NET. Program SQL Server zawiera wstępnie zainstalowany program .NET Framework w wersji 4.
W tym 6-minutowym filmie wideo pokazano, jak używać środowiska CLR w usłudze Azure SQL Managed Instance:
Zabezpieczenia dostępu kodu nie są już obsługiwane
ClR używa zabezpieczeń dostępu kodu (CAS) w programie .NET Framework, który nie jest już obsługiwany jako granica zabezpieczeń. Zestaw CLR utworzony za pomocą PERMISSION_SET = SAFE
może mieć dostęp do zasobów systemu zewnętrznego, wywołać kod niezarządzany i uzyskać uprawnienia administratora systemu. W programie SQL Server 2017 (14.x) i nowszych wersjach opcja sp_configure
, ścisłe zabezpieczenia, zwiększa bezpieczeństwo zestawów CLR.
clr strict security
jest domyślnie włączona i traktuje zestawy SAFE
i EXTERNAL_ACCESS
tak, jakby zostały oznaczone UNSAFE
. Opcja clr strict security
może być wyłączona w celu zapewnienia zgodności z poprzednimi wersjami, ale nie jest zalecana.
Zalecamy podpisanie wszystkich zestawów przy użyciu certyfikatu lub klucza asymetrycznego z odpowiednim identyfikatorem logowania, któremu udzielono UNSAFE ASSEMBLY
uprawnienia w bazie danych master
. Administratorzy programu SQL Server mogą również dodawać zestawy do listy zestawów, którym aparat bazy danych powinien ufać. Aby uzyskać więcej informacji, zobacz sys.sp_add_trusted_assembly.
Kiedy należy używać modułów CLR
Integracja środowiska CLR umożliwia implementowanie złożonych funkcji dostępnych w programie .NET Framework, takich jak wyrażenia regularne, kod umożliwiający uzyskiwanie dostępu do zasobów zewnętrznych (serwerów, usług internetowych, baz danych), szyfrowania niestandardowego itp. Oto niektóre korzyści wynikające z integracji środowiska CLR po stronie serwera:
Lepszy model programowania. Języki .NET Framework są pod wieloma względami bogatsze niż język Transact-SQL, oferując konstrukcje i możliwości, które wcześniej nie były dostępne dla deweloperów programu SQL Server. Deweloperzy mogą również korzystać z możliwości biblioteki .NET Framework, która udostępnia obszerny zestaw klas, które mogą służyć do szybkiego i wydajnego rozwiązywania problemów programistycznych.
Ulepszone bezpieczeństwo i bezpieczeństwo. Kod zarządzany jest uruchamiany w środowisku uruchomieniowym języka wspólnego hostowanym przez aparat bazy danych. Program SQL Server używa tego programu do zapewnienia bezpieczniejszej i bezpieczniejszej alternatywy dla rozszerzonych procedur składowanych dostępnych we wcześniejszych wersjach programu SQL Server.
Możliwość definiowania typów danych i funkcji agregujących. Typy zdefiniowane przez użytkownika i agregacje zdefiniowane przez użytkownika to dwa nowe zarządzane obiekty bazy danych, które rozszerzają możliwości magazynu i wykonywania zapytań w programie SQL Server.
Usprawnione programowanie za pośrednictwem ustandaryzowanego środowiska. Programowanie bazy danych jest zintegrowane z przyszłymi wersjami środowiska programistycznego .NET programu Visual Studio. Deweloperzy używają tych samych narzędzi do tworzenia i debugowania obiektów i skryptów bazy danych, ponieważ są one używane do pisania składników i usług programu .NET Framework w warstwie środkowej lub klienta.
Potencjał zwiększenia wydajności i skalowalności. W wielu sytuacjach modele kompilacji i wykonywania języka .NET Framework zapewniają lepszą wydajność w języku Transact-SQL.
rozszerzenia języka programu SQL Server zapewnić alternatywne środowisko wykonawcze dla środowisk uruchomieniowych w pobliżu aparatu bazy danych. Aby zapoznać się z omówieniem różnic między rozszerzeniami języka SQL CLR i SQL, zobacz Compare SQL Server Language Extensions to SQL CLR.
W poniższej tabeli wymieniono artykuły w tej sekcji.
Artykuł | Opis |
---|---|
omówienie integracji środowiska CLR | Opisuje rodzaje obiektów, które można skompilować przy użyciu integracji środowiska CLR. Zapoznaj się również z wymaganiami dotyczącymi kompilowania obiektów bazy danych przy użyciu integracji środowiska CLR. |
Co nowego w integracji środowiska CLR? | Opisuje nowe funkcje w tej wersji. |
architektura integracji środowiska CLR — środowisko hostowane w środowisku CLR | Opisuje cele projektowe integracji środowiska CLR. |
włączanie integracji środowiska CLR | Opisuje sposób włączania integracji środowiska CLR. |
Powiązana zawartość
- przewodnik instalacji programu .NET Framework
- wydajność architektury integracji środowiska CLR