Udostępnij za pośrednictwem


Using EXECUTE AS to Create Custom Permission Sets

Określanie kontekstu wykonania dla modułu może być bardzo przydatne przy definiowaniu uprawnienia niestandardowe ustawienie.Na przykład niektórych czynności, takich jak PRZYCINANIE tabela, nie masz uprawnień grantable.Aby wykonać TRUNCATE tabela użytkownik musi mieć uprawnienia ALTER w określonej tabela.Udzielanie użytkownikowi uprawnień ALTER dla tabela, może nie być idealnie nadaje się, ponieważ użytkownik będzie miał skutecznie uprawnienia daleko poza możliwością obciąć tabela.

Dołączanie instrukcja OBCINANIA tabela w module oraz określanie, wykonać tego modułu jako użytkownik z uprawnieniami do modyfikowania tabela, można rozszerzyć uprawnienia, aby obciąć tabela do użytkownika, że w przypadku nadawania uprawnień wykonać w module.

Należy wziąć pod uwagę tę procedura przechowywana:

CREATE PROCEDURE TruncateMyTable
WITH EXECUTE AS SELF
AS TRUNCATE TABLE MyDB..MyTable;

Załóżmy Jan tworzy tej procedury i dotacji uprawnienia do wykonywania dotyczące TruncateMyTable Aby Scott. Gdy procedura przechowywana wykonuje Scott Database Engine sprawdza uprawnienia, aby obciąć tabela tak, jakby Mary zostały wykonywanie procedury przechowywanej. Ponieważ użytkownik jest właścicielem tabela, w instrukcja powiedzie się, mimo że Scott nie ma bezpośredniego uprawnień w tabela.Joanna została szybko i efektywnie rozszerzona uprawnienia Scott, które użytkownik chciał, bez nadawania im więcej uprawnień niż to konieczne do wykonania tego zadania.