Tworzenie wirtualny plik dziennika
Obiekty zarządzane bazy danych, takie jak procedury przechowywane i wyzwalacze, są skompilowane, a następnie wdrażane w jednostkach o nazwie wirtualny plik dziennika.Managed DLL assemblies must be registered in Microsoft SQL Server before the functionality the assembly provides can be used.Do rejestrowania w zestawie SQL Server bazy danych, należy użyć instrukcja CREATE wirtualny plik dziennika. W tym temacie omówiono, jak zarejestrować wirtualny plik dziennika w bazie danych za pomocą instrukcja CREATE MONTAŻOWYCH oraz jak określić ustawienia zabezpieczeń dla wirtualny plik dziennika.
W instrukcji CREATE wirtualny plik dziennika
Instrukcja CREATE MONTAŻOWYCH jest używany do tworzenia wirtualny plik dziennika w bazie danych.Oto przykład:
CREATE ASSEMBLY SQLCLRTest
FROM 'C:\MyDBApp\SQLCLRTest.dll'
Klauzula FROM Określa nazwę ścieżki do utworzenia wirtualny plik dziennika.Ta ścieżka może być ścieżką uniwersalnej konwencja nazewnictwa (UNC) lub ścieżkę pliku fizycznego, która jest lokalnym na tym komputerze.
SQL Server nie umożliwia rejestrowanie różnych wersji wirtualny plik dziennika o takiej samej nazwie, kulturę i klucz publiczny.
Istnieje możliwość tworzenia zestawów, które odwołują się do innych zespołów.Podczas tworzenia wirtualny plik dziennika w SQL Server, SQL Server tworzy również zespołów, zawiera odwołanie do wirtualny plik dziennika poziomie katalogu głównego, jeśli odwołania zestawów nie są już utworzone w bazie danych.
Bazy danych użytkowników i ról użytkownika znajdują się uprawnienia do tworzenia i tym samym właścicielem, zestawów w bazie danych.W celu utworzenia zespołów, roli lub użytkownika bazy danych powinien mieć uprawnienia CREATE wirtualny plik dziennika.
wirtualny plik dziennika Tylko może się powieść w odwoływaniu się do innych zespołów, jeśli:
wirtualny plik dziennika o nazwie lub odwołanie do właścicielem jest ten sam użytkownik lub rola.
wirtualny plik dziennika o nazwie lub odwołanie do został utworzony w tej samej bazy danych.
Określanie zabezpieczeń podczas tworzenia zestawów
Podczas tworzenia wirtualny plik dziennika w SQL Server Baza danych, można określić jeden z trzech różnych poziomów zabezpieczeń, w którym może zostać uruchomione w kodzie: SAFE, EXTERNAL_ACCESS, lub UNSAFE. Gdy CREATE ASSEMBLY Instrukcja jest uruchamiany, niektóre są sprawdzane w zestawie kodu, co może spowodować, że wirtualny plik dziennika do nie można zarejestrować na serwerze.
SAFE jest to zestaw uprawnień domyślnych i działa w przypadku większości scenariuszy.Aby określić poziom zabezpieczeń, zmodyfikować składnia tworzenia wirtualny plik dziennika instrukcja w następujący sposób:
CREATE ASSEMBLY SQLCLRTest
FROM 'C:\MyDBApp\SQLCLRTest.dll'
WITH PERMISSION_SET = SAFE
Istnieje również możliwość tworzenia wirtualny plik dziennika z SAFE Uprawnienie ustawione przez pominięcie trzeci wiersz powyżej kodu:
CREATE ASSEMBLY SQLCLRTest
FROM 'C:\MyDBApp\SQLCLRTest.dll'
Podczas wykonywania kodu w zestawie w obszarze SAFE wirtualny plik dziennika uprawnień go może tylko do obliczeń i dostępu do danych na serwerze za pośrednictwem dostawca zarządzanych w procesie.
Tworzenie EXTERNAL_ACCESS i zestawy niebezpieczne
EXTERNAL_ACCESS adresy scenariusze, w którym kod musi uzyskać dostęp do zasobów poza serwerem, na przykład plików, sieci, rejestru i zmiennych środowiskowych.Za każdym razem, gdy serwer uzyskuje dostęp do zewnętrznych zasób, personifikuje w kontekście zabezpieczeń użytkownika wywołującego kod zarządzany.
UNSAFE kod uprawnień jest dla tych sytuacji, w którym nie jest bezpieczne verifiably wirtualny plik dziennika lub wymaga dodatkowych dostępu do ograniczone zasoby, takie jak Microsoft Win32 API.
Aby utworzyć EXTERNAL_ACCESS lub UNSAFE wirtualny plik dziennika w SQL Serverjeden z następujących czynności, muszą być spełnione dwa warunki:
wirtualny plik dziennika jest silnej nazwy podpisane lub Authenticode podpisany przy użyciu certyfikat.Tworzony jest wewnątrz tej silnej nazwy (lub certyfikat) SQL Server jak asymetrycznego klucz (lub certyfikat) a odpowiadające im nazwa logowania z EXTERNAL ACCESS ASSEMBLY uprawnienie (w przypadku zestawów zewnętrzny dostęp) lub UNSAFE ASSEMBLY uprawnienie (na niebezpieczne zestawów).
Właściciel bazy danych (DBO) ma EXTERNAL ACCESS ASSEMBLY (dla EXTERNAL ACCESS zestawy) lub UNSAFE ASSEMBLY (dla UNSAFE uprawnienia do zestawów) i baza danych ma TRUSTWORTHY Database Property zestaw do ON.
Dwa z wymienionych powyżej warunków również są sprawdzane w czasie ładowania wirtualny plik dziennika (w tym wykonywania).Co najmniej jeden z warunków muszą być spełnione, aby załadować wirtualny plik dziennika.
Zaleca się, że TRUSTWORTHY Database Property w bazie danych nie może być ustawiona na ON tylko do kodu (CLR) w czasie wykonywania języka wspólnego są uruchamiane w procesie serwera. Zalecany utworzenia asymetrycznego klucz z pliku wirtualny plik dziennika w głównej bazie danych.Następnie należy utworzyć identyfikator logowania mapowane do tego klucz asymetrycznego, a wymagane jest uprawnienie logowania EXTERNAL ACCESS ASSEMBLY lub UNSAFE ASSEMBLY uprawnienie.
Poniżej Transact-SQL instrukcji należy wykonać czynności, które są wymagane do utworzenia asymetrycznego klucz, mapowania identyfikatora logowania do tego klucz, a następnie przydziel EXTERNAL_ACCESS uprawnienia do logowania się. Należy wykonać następujące czynności Transact-SQL instrukcje przed uruchomieniem instrukcja CREATE wirtualny plik dziennika.
USE master
GO
CREATE ASYMMETRIC KEY SQLCLRTestKey FROM EXECUTABLE FILE = 'C:\MyDBApp\SQLCLRTest.dll'
CREATE LOGIN SQLCLRTestLogin FROM ASYMMETRIC KEY SQLCLRTestKey
GRANT EXTERNAL ACCESS ASSEMBLY TO SQLCLRTestLogin
GO
Uwaga
Należy utworzyć nowy identyfikator logowania ma być skojarzony z klucz asymetrycznego.Tego identyfikatora logowania jest używane tylko do przyznawania uprawnień, nie ma być skojarzone z użytkownikiem lub używane w aplikacji.
Aby utworzyć EXTERNAL ACCESS montaż, autor musi mieć EXTERNAL ACCESS uprawnienie. Jest to określone podczas tworzenia wirtualny plik dziennika:
CREATE ASSEMBLY SQLCLRTest
FROM 'C:\MyDBApp\SQLCLRTest.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS
Poniżej Transact-SQL instrukcji należy wykonać czynności, które są wymagane do utworzenia asymetrycznego klucz, mapowania identyfikatora logowania do tego klucz, a następnie przydziel UNSAFE uprawnienia do logowania się. Należy wykonać następujące czynności Transact-SQL instrukcje przed uruchomieniem instrukcja CREATE wirtualny plik dziennika.
USE master
GO
CREATE ASYMMETRIC KEY SQLCLRTestKey FROM EXECUTABLE FILE = 'C:\MyDBApp\SQLCLRTest.dll'
CREATE LOGIN SQLCLRTestLogin FROM ASYMMETRIC KEY SQLCLRTestKey
GRANT UNSAFE ASSEMBLY TO SQLCLRTestLogin
GO
Aby określić, że zespół ładuje z UNSAFE Określanie uprawnień, UNSAFE Uprawnienie ustawione podczas ładowania wirtualny plik dziennika do serwera:
CREATE ASSEMBLY SQLCLRTest
FROM 'C:\MyDBApp\SQLCLRTest.dll'
WITH PERMISSION_SET = UNSAFE
Aby uzyskać więcej szczegółowych informacji o uprawnieniach dla każdego z ustawień Zobacz Środowisko CLR Integracja z zabezpieczeniami.
Historia zmian
Microsoft Learning |
|---|
Dodać notatki dotyczące korzystania z identyfikatora logowania utworzonego dla klucz asymetrycznego. |
See Also