Aracılığıyla paylaş


execute as vs. SETUSER

De SQL Server, bağlam içinde bir dize, komut veya modül yürütüleceği açıkça olabilir küme execute as kullanarak deyim.execute as setuser deyim değiştirir.İçerik Geçişi hakkında daha fazla bilgi için bkz: İçerik Geçişi anlama.

Bağlam geçişi işlevsellik karşılaştırma

setuser deyim karşılaştırıldığında, execute as aşağıdaki avantajları vardır:

  • Sunucu veya veritabanı sorumluları dışındaki sa veya dbo execute AS çağırabilir

    deyim hedef asıl özelliklerini Al izinleri olması gerekir, execute çağıran kullanıcı.

    setuser üyeleri için kısıtlı sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü.

  • kapsam Kimliğe bürünme deyim içinde açıkça tanımlanır.

    Belirtilen asıl adı belirtilen bir oturum olarak, server -düzey , kimliğe bürünme veya bir kullanıcı olarak, veritabanı -düzey kimliğe bürünme.

    kapsam Kimliğe bürünme de setuser deyim örtülü.Deyim üye tarafından çağrılırsa sysadmin, server -düzey kimliğe bürünme kullanılır.deyim olan bir hesap adı verilen, dbo, veritabanı -düzey kimliğe bürünme kullanılır.

  • Kimliğe bürünme, aşağıdakilerden biri oluşana kadar etkin kalır:

    • Oturum bırakılır.

    • Başka bir oturum açma veya kullanıcı bağlamı anahtarlanır.

    • İçerik için önceki yürütme içeriği dönüştürüldükten.

    setuser ile kimliğe bürünmeyi aşağıdakilerden biri oluşana kadar etkin kalır:

    • Başka bir setuser deyim verilir.

    • Geçerli veritabanı use deyim ile bir hesap tarafından değiştirilir dbo, ya da üye olduğu sysadmin sabit sunucu rolü.

  • execute as arayan bir yürütme içerik yığını oluşturma deyim birden çok kez birden fazla sorumluları arasında.Çağrıldığında, geri deyim içeriğini oturum açma veya kullanıcı İleri düzey yukarı içerik yığını içinde geçirir.Daha fazla bilgi için bkz: execute (Transact-sql).

    setuser oluşturulacak bir yürütme içerik yığını izin vermez.

Bir önceki içeriğe geri dönme

EXECUTE AS

Kullanım geri önceki içeriğe dönmek deyim.GERİ çağıran deyim oluştuğu kimliğe bürünme aynı veritabanında bulunması gerekir.

SETUSER

setuser önceki bağlamına geri dönmek için kullanmak deyim bir kullanıcı adı belirtmeden.