Udostępnij za pomocą


Konfiguracja serwera: clr strict security

Dotyczy:SQL Server

Steruje interpretacją uprawnień SAFE, EXTERNAL_ACCESS lub UNSAFE w programie SQL Server. Aby uzyskać więcej informacji na temat tych uprawnień, zobacz Projektowanie zestawów.

Wartość Opis
0 Niepełnosprawny. Zapewniana zgodność z poprzednimi wersjami. Ustawienie tej wartości na 0 wartość nie jest zalecane, ponieważ może utworzyć lukę w zabezpieczeniach.
1 Włączona. Powoduje, że aparat bazy danych ignoruje PERMISSION_SET informacje dotyczące zestawów i zawsze interpretuje je jako UNSAFE. W programie SQL Server 2017 (14.x) i nowszych wersjach 1 jest wartością domyślną.

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 bezpieczeństwa. 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, clr strict security traktuje zestawy SAFE i EXTERNAL_ACCESS tak, jakby były oznaczone jako UNSAFE.

Zalecamy podpisanie wszystkich zestawów certyfikatem lub kluczem asymetrycznym, z odpowiadającym loginem, któremu udzielono uprawnienia UNSAFE ASSEMBLY 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.

Uwagi

Po włączeniu opcji PERMISSION_SET w instrukcjach CREATE ASSEMBLY i ALTER ASSEMBLY jest ona pomijana podczas wykonywania, ale opcje PERMISSION_SET są zachowane w metadanych. Ignorowanie tej opcji minimalizuje łamliwość istniejących instrukcji kodu.

CLR strict security jest advanced option.

Po włączeniu rygorystycznych zabezpieczeń wszystkie zestawy, które nie są podpisane, nie zostaną załadowane. Należy albo zmienić, albo usunąć i ponownie utworzyć każdy zestaw, aby był podpisany certyfikatem lub kluczem asymetrycznym, który ma odpowiedni login z uprawnieniem UNSAFE ASSEMBLY na serwerze.

Uprawnienia

Zmień tę opcję

Wymaga uprawnień CONTROL SERVER lub członkostwa w ustalonej roli serwera sysadmin.

Utwórz zestaw CLR

Następujące uprawnienia są wymagane do utworzenia zestawu CLR po CLR strict security włączeniu:

  • Użytkownik musi mieć CREATE ASSEMBLY uprawnienie

  • Należy również spełnić jeden z następujących warunków:

    • Zbiór jest podpisany przy użyciu certyfikatu lub klucza asymetrycznego, który ma odpowiadające dane logowania z UNSAFE ASSEMBLY uprawnieniem na serwerze. Zalecane jest podpisywanie zestawu.

    • Baza danych ma właściwość ustawioną TRUSTWORTHY na ON, a baza danych jest własnością loginu, który posiada UNSAFE ASSEMBLY uprawnienia na serwerze. Ta opcja nie jest zalecana.

Przykłady

Poniższy przykład najpierw wyświetla bieżące ustawienie clr strict security opcji, a następnie ustawia wartość opcji na 1 (włączone).

EXECUTE sp_configure 'clr strict security';
GO

EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO