Aracılığıyla paylaş


SETUSER (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

sysadmin sabit sunucu rolünün veya veritabanının sahibinin başka bir kullanıcının kimliğine bürünmesini sağlar.

Önemli

SETUSER yalnızca geriye dönük uyumluluk için dahil edilir. SETUSER, SQL Server'ın gelecek bir sürümünde desteklenmeyebilir. Bunun yerine EXECUTE AS kullanmanızı öneririz.

Transact-SQL söz dizimi kuralları

Sözdizimi

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Bağımsız değişken

'kullanıcı adı'
Kimliğine bürünülen geçerli veritabanındaki bir SQL Server veya Windows kullanıcısının adıdır. kullanıcı adı belirtilmediğinde, kullanıcının kimliğine bürünen sistem yöneticisinin veya veritabanı sahibinin özgün kimliği sıfırlanır.

NORESET ILE
Sonraki SETUSER deyimlerinin (belirtilen kullanıcı adıolmadan) kullanıcı kimliğini sistem yöneticisine veya veritabanı sahibine sıfırlamaması gerektiğini belirtir.

Açıklamalar

SETUSER, sysadmin sabit sunucu rolünün bir üyesi veya veritabanının sahibi tarafından diğer kullanıcının izinlerini test etmek üzere başka bir kullanıcının kimliğini benimsemek için kullanılabilir. db_owner sabit veritabanı rolü üyeliği yeterli değildir.

SETUSER'i yalnızca SQL Server kullanıcıları ile kullanın. SETUSER, Windows kullanıcılarıyla desteklenmez. SETUSER başka bir kullanıcının kimliğini varsaymak için kullanıldığında, kimliğine bürünen kullanıcının oluşturduğu tüm nesneler kimliğine bürünülen kullanıcıya aittir. Örneğin, veritabanı sahibi Margaret kullanıcı kimliğini varsayar vesiparişler adlı bir tablo oluşturursa, siparişler tablosu sistem yöneticisine değil Margaret'a aittir.

SETUSER, başka bir SETUSER deyimi verilene kadar veya geçerli veritabanı USE deyimiyle değiştirilene kadar etkin kalır.

Not

NORESET ile SETUSER kullanılıyorsa, veritabanı sahibinin veya sistem yöneticisinin kendi haklarını yeniden kurmak için oturumu kapatması ve sonra yeniden oturum açması gerekir.

İzinler

sysadmin sabit sunucu rolüne üyelik gerektirir veya veritabanının sahibi olmalıdır. db_owner sabit veritabanı rolüne üyelik yeterli değil

Örnekler

Aşağıdaki örnek, veritabanı sahibinin başka bir kullanıcının kimliğini nasıl benimseyebileceğini gösterir. Kullanıcı mary, computer_typesadlı bir tablo oluşturmuştur. SETUSER kullanarak, veritabanı sahibi kullanıcıya mary tablosuna joe erişim vermek için computer_types kimliğine bürünerek kendi kimliğini sıfırlar.

SETUSER 'mary';  
GO  
GRANT SELECT ON computer_types TO joe;  
GO  
--To revert to the original user  
SETUSER;  

Ayrıca Bkz.

DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)