Łącza w CLR integracji zabezpieczeń
W tej sekcji opisano, jak fragmentów kodu użytkownika mogą wywoływać wzajemnie SQL Server, 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łania kodu, albo z wywołania obiektu użytkownika (takich jak Transact-SQL telefonicznej partia procedura składowana), lub common language runtime (CLR) procedura składowana lub funkcja.Wywołania łącza Przyczyna EXECUTE uprawnienie wywoływany mają być sprawdzane.
Łącza dostępu do tabel
Łącza tabela odpowiadają pobieranie lub modyfikując wartości w tabela, widoku lub funkcja zwracająca tabelę.Są one podobne do wywołania łącza, chyba że mają one kontroli precyzyjny system dostępu na uprawnienia SELECT, INSERT, UPDATE i DELETE.
Łącza Gated
Łącza Gated oznacza, że w czasie wykonywania uprawnień nie są sprawdzane przez relację obiekt po jego ustanowieniu.Gdy gated łącze między dwoma obiektami (na przykład obiekt x i obiekt y), uprawnienia do obiektu y i innych obiektów z obiektu y sprawdzane są tylko przy tworzeniu czas obiektu x.Przy tworzeniu czas obiektu x, REFERENCE uprawnienie jest sprawdzany na y przeciwko właścicielowi x.Na wykonanie czas, (gdy na przykład obiekt ktoś wywołuje x), Brak uprawnień sprawdzane y lub inne obiekty odwołuje się statycznie.Na wykonanie czas, odpowiednich uprawnień będzie sprawdzany na podstawie obiektu x sobie.
Łącza Gated 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 zapobiega obiekt usunięty jak próbuję zależy od innego obiektu
Gated łącza są przydatne, gdy nie jest właściwe lub zarządzaniu, aby nadać uprawnienia do wielu obiektów zależnych.Gated łącza są używane w SQL Server 2000 dla kolumny obliczane i indeksowany tekst pełnego kolumn.Począwszy od SQL Server 2005, wprowadzono gated łącza między obiektami, które definiują Transact-SQL punkty wejścia do środowiska CLR zespoły (na przykład CLR procedur, wyzwalaczy, funkcji, typów i agregatów) i zespoły, z których są zdefiniowane.Gated zabezpieczenia przeciwko tych obiektów wynika, że aby wywołać Transact-SQL zdefiniowanych w CLR punktu wejścia wirtualny plik dziennika, wywołujący musi tylko odpowiednie uprawnienia, na który Transact-SQL punkt wejścia.Wywołujący nie jest wymagane uprawnienia, wirtualny plik dziennika lub innych zespołów statycznie odwołuje.Uprawnienia dla wirtualny plik dziennika są sprawdzane podczas tworzenia czas z Transact-SQL punkt wejścia.
SQL Server zabezpieczeń opartych na autoryzacji
Oto podstawowe reguły za SQL Server zabezpieczeń sprawdza, czy wywołania i między obiektami bazy danych opartej na CLR; trzy pierwsze reguły zdefiniować uprawnienia, które są sprawdzane i wobec którego obiektu; czwarty reguła Określa kontekst wykonania, które sprawdzane uprawnienia.
Wszystkie wywołania wymagają EXECUTE uprawnień chyba że wywołania w tym samym obiekcie; oznacza to, że wywołań w ramach tego samego wirtualny plik dziennika nie wymagają kontroli uprawnień.Uprawnienie jest sprawdzany na wykonanie czas.
Łącza Gated wymagają REFERENCE uprawnień przeciwko wywoływany podczas tworzenia obiektu wywołującego.Uprawnienie jest zaznaczone dla właściciela obiektu wywołującego, podczas tworzenia obiektu.
Łącza tabela dostępu wymagają odpowiedniego SELECT, INSERT, UPDATE, lub DELETE uprawnienia wobec tabela lub widoku uzyskiwany.
Uprawnienie jest sprawdzana względem bieżącego kontekstu wykonanie.Procedury i funkcje mogą być tworzone w kontekście wykonywania, który różni się od rozmówcy.Zespoły są zawsze tworzone w kontekście realizacji procedury, funkcja lub wyzwalacz, który jest zdefiniowany przed nim.