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 edilmiştir. SETUSERSQL Server'ın gelecekteki bir sürümünde desteklenmeyebilir. Bunun yerine kullanmanızı EXECUTE AS ö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 ifadeler ( belirtilmiş kullanıcı adı olmadan) kullanıcı kimliğinin sistem yöneticisi veya veritabanı sahibine sıfırlanmaması gerektiğini belirtir.

Açıklamalar

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

Sadece SQL Server kullanıcılarıyla kullanınSETUSER. SETUSERWindows kullanıcıları tarafından desteklenmiyor. Başka bir kullanıcının kimliğini üstlenmek için kullanıldığında SETUSER , taklit eden kullanıcının oluşturduğu tüm nesneler taklit edilen 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 SETUSER bir ifade yayımlanana veya mevcut veritabanı USE ifadesi ile değiştirilene kadar yürürlükte kalır.

Not

WITH NORESET kullanılırsa SETUSER , veritabanı sahibi veya sistem yöneticisi çıkış yapıp sonra tekrar giriş yaparak kendi haklarını yeniden kurmak zorundadır.

İ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. Veritabanı sahibiSETUSER, kullanıcıya tabloya erişim computer_types vermek için taklit joemary yapar ve ardından 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)
KULLANIM (Transact-SQL)