Udostępnij za pośrednictwem


WYKONYWANIE jako vs. SETUSER

W SQL Server, kontekst, w którym ciąg, polecenie, lub wykonywane modułu można jawnie ustawić przy użyciu jako wykonywanie instrukcja.WYKONYWANIE jako zastępuje instrukcja SETUSER.Aby uzyskać więcej informacji na temat przełączania kontekstu, zobacz Opis przełączania kontekstu.

Porównanie funkcji przełączania kontekstu

W porównaniu do SETUSER instrukcja EXECUTE jako ma następujące zalety:

  • Serwer lub baza danych podmiotów innych niż sa lub dbo można wywołać jako EXECUTE

    Użytkownik, który wywołuje wykonywanie instrukcja musi mieć uprawnienia PERSONIFIKUJ kapitału miejsce docelowe.

    SETUSER jest ograniczony do członków sysadmin stała rola serwera lub db_owner ustaloną rola bazy danych.

  • Zakres personifikacji jest jawnie zdefiniowane w instrukcja.

    Określony główny zobowiązany jest określona jako identyfikatora logowania personifikację poziom serwera, lub użytkownik personifikację poziom bazy danych.

    Zakres personifikacji w instrukcja SETUSER jest niejawne.Jeśli instrukcja jest wywoływana przez element członkowski sysadmin, używane personifikację poziom serwera.Jeśli instrukcja jest wywoływana przez konto jest dbo, używana jest baza danych poziom personifikacji.

  • Personifikację pozostaje, dopóki występuje jeden z następujących czynności:

    • Sesja jest odrzucany.

    • Kontekst przełączania do innego logowania lub użytkownika.

    • Kontekst jest przywrócone do poprzedniego kontekstu wykonanie.

    Z SETUSER personifikacją pozostaje, dopóki występuje jeden z następujących czynności:

    • Wydano innej instrukcja SETUSER.

    • Bieżąca baza danych jest zmieniany przy użyciu instrukcja przez konto jest dbo, lub jest członkiem sysadmin roli serwera stałych.

  • Stos kontekstu wykonanie można utworzyć poprzez wywołanie jako wykonywanie instrukcja wielokrotnie w wielu podmiotów.Po wywołaniu instrukcja PRZYWRÓĆ przełącza kontekst logowania lub następny poziom w górę stosu kontekstu użytkownika.Aby uzyskać więcej informacji, zobacz WYKONANIE jako języka Transact-SQL).

    SETUSER nie zezwala na wykonanie Stos kontekstu do utworzenia.

Powracanie do poprzedniego kontekstu

WYKONANIE JAKO

Użyj PRZYWRÓĆ instrukcja, aby powrócić do poprzedniego kontekstu.Wywołujący instrukcja PRZYWRACANIA musi być w tej samej bazy danych, w którym wystąpiło personifikację.

SETUSER

Aby powrócić do poprzedniego kontekstu, należy użyć instrukcja SETUSER bez określania nazwy użytkownika.