Bagikan melalui


SETUSER (Transact-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Memungkinkan anggota peran server tetap sysadmin atau pemilik database untuk meniru pengguna lain.

Penting

SETUSER hanya disertakan untuk kompatibilitas mundur. SETUSER mungkin tidak didukung dalam rilis SQL Server di masa mendatang. Kami menyarankan agar Anda menggunakan EXECUTE AS sebagai gantinya.

Konvensi sintaks transact-SQL

Sintaksis

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

' nama pengguna '
Adalah nama pengguna SQL Server atau Windows dalam database saat ini yang ditiru. Ketika nama pengguna tidak ditentukan, identitas asli administrator sistem atau pemilik database yang meniru pengguna diatur ulang.

DENGAN NORESET
Menentukan bahwa pernyataan SETUSER berikutnya (tanpa nama pengguna yang ditentukan) tidak boleh mengatur ulang identitas pengguna ke administrator sistem atau pemilik database.

Keterangan

SETUSER dapat digunakan oleh anggota peran server tetap sysadmin atau pemilik database untuk mengadopsi identitas pengguna lain untuk menguji izin pengguna lain. Keanggotaan dalam peran database tetap db_owner tidak cukup.

Hanya gunakan SETUSER dengan pengguna SQL Server. SETUSER tidak didukung dengan pengguna Windows. Ketika SETUSER telah digunakan untuk mengasumsikan identitas pengguna lain, objek apa pun yang dibuat pengguna yang meniru dimiliki oleh pengguna yang ditiru. Misalnya, jika pemilik database mengasumsikan identitas pengguna Margaret dan membuat tabel yang disebut pesanan, tabel pesanan dimiliki oleh Margaret, bukan administrator sistem.

SETUSER tetap berlaku sampai pernyataan SETUSER lain dikeluarkan atau sampai database saat ini diubah dengan pernyataan USE.

Catatan

Jika SETUSER WITH NORESET digunakan, pemilik database atau administrator sistem harus keluar dan kemudian masuk lagi untuk membangun kembali haknya sendiri.

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin atau harus menjadi pemilik database. Keanggotaan dalam peran database tetap db_owner tidak cukup

Contoh

Contoh berikut menunjukkan bagaimana pemilik database dapat mengadopsi identitas pengguna lain. Pengguna mary telah membuat tabel yang disebut computer_types. Dengan menggunakan SETUSER, pemilik database meniru mary untuk memberikan akses pengguna joe ke computer_types tabel, lalu mengatur ulang identitasnya sendiri.

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

Lihat Juga

TOLAK (Transact-SQL)
GRANT (T-SQL)
MENCABUT (Transact-SQL)
USE (Transact-SQL)