Łącza w CLR Integracja z zabezpieczeniami
W tej sekcji opisano, jak fragmentów kodu użytkownika mogą wywoływać sobie nawzajem SQL Server, albo w Transact-SQL lub w jednym z języków zarządzanych. Te relacje między obiektami są określane jako łącza.
Wywołania łącza
Wywołania łącza odpowiadają wywołanie kodu, albo z wywołaniem obiektu użytkownik (takie jak Transact-SQL partia wywoływania procedura przechowywana), lub plików wykonywalnych języka wspólnego (CLR) przechowywane procedury lub funkcja. Wywołanie łączy przyczyny EXECUTE uprawnienie wywoływany mają być sprawdzane.
Łącza Access tabela
Łącza tabela odpowiadają pobieranie lub modyfikując wartości w tabela, widoku lub funkcja wycenione tabela.Są one podobne do wywołania łącza, z tą różnicą, że mają one kontroli dostępu, aby lepiej przetwarzaniu z punktu widzenia uprawnienia SELECT, INSERT, UPDATE i DELETE.
Bramkowy łącza
Łącza bramkowy oznacza, że podczas wykonywania, uprawnienia nie są sprawdzane przez relację obiekt po jego ustanowieniu.Gdy bramkowy łącze między dwoma obiektami (na przykład, obiekt x i obiekt y), uprawnienia dotyczące obiektu y i inne obiekty, do którego można uzyskać dostęp z obiektu y są sprawdzane tylko w czasie tworzenia obiektu x.Przy tworzeniu czas obiektu x, REFERENCE uprawnienie jest sprawdzany na y przeciwko właścicielowi x.Na wykonanie czas (na przykład, gdy użytkownik wywołuje obiekt x), istnieją żadne uprawnienia, program sprawdza y lub inne obiekty, które odwołuje się statycznie.Na wykonanie czas, uprawnienie do odpowiednich będą sprawdzane względem obiektu x samego siebie.
Łącza bramkowy zawsze są używane w połączeniu z metadane zależność między dwoma obiektami.Ta zależność metadane jest relacją ustanowioną w SQL Server katalogi, które uniemożliwia obiekt zostanie usunięty, dopóki inny obiekt zależny od niego.
Bramkowy łącza są przydatne, gdy nie jest właściwe lub zarządzane, aby udzielić uprawnień do wielu obiektów zależnych.Bramkowy łącza są używane w SQL Server 2000 kolumny obliczane i indeksowany tekst pełnej kolumn. Zaczyna się od SQL Server 2005, wprowadza się bramkowy łącza między obiektami, które definiują Transact-SQL punkty wejścia do środowiska CLR zestawy (na przykład CLR procedur, wyzwalaczy, funkcji, typów i zagregowanych) i zestawy, które zostały zdefiniowane. Oznacza bramkowy zabezpieczeń dla tych obiektów, aby wywołać Transact-SQL punkt wejścia zdefiniowane w wirtualny plik dziennika CLR, tylko obiekt wywołujący musi odpowiednich uprawnień, na które Transact-SQL punkt wejścia. Obiekt wywołujący nie muszą mieć uprawnienia do tego wirtualny plik dziennika lub inne zestawy, które statycznie odwołuje.Uprawnienia dla wirtualny plik dziennika są sprawdzane podczas tworzenia czas z Transact-SQL punkt wejścia.
Zabezpieczenia oparte na autoryzacja serwera SQL Server
Poniżej przedstawiono podstawowe zasady za SQL Server zabezpieczeń sprawdza, czy wywołania i między obiektami bazy danych opartej na CLR; trzy pierwsze reguły definiują, jakie uprawnienia są sprawdzane i przeciwko którym obiektu; czwarta reguła określa które kontekstu wykonywanie, uprawnienie jest sprawdzany na podstawie.
Wszystkie wywołania wymagają EXECUTE uprawnienia, chyba że wywołania pojawiają się w tym samym obiekcie; oznacza to, że wywołań w ramach tego samego wirtualny plik dziennika nie wymagają kontroli uprawnień. Uprawnienia są sprawdzane w czasie wykonywania.
Wymagają bramkowy łącza REFERENCE uprawnienia wobec wywoływany, gdy zostanie utworzony obiekt wywołujący. Podczas tworzenia obiektu uprawnień jest sprawdzana pod kątem właściciel obiektu wywołującego.
Łącza tabela dostępu wymagają odpowiednich SELECT, INSERT, UPDATE, lub DELETE uprawnienia wobec tabela lub widok, do którego.
Uprawnienie jest sprawdzany na podstawie bieżącego kontekstu wykonania.Procedury i funkcje mogą być tworzone za pomocą kontekst wykonania jest inny niż wywołujący.Zespoły są zawsze tworzone w kontekście wykonanie procedury, funkcja lub wyzwalacz, który jest zdefiniowany przed nim.