sp_changedbowner (T-SQL)
Berlaku untuk: SQL Server
Mengubah pemilik database saat ini.
Penting
Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan ALTER AUTHORIZATION sebagai gantinya.
Sintaks
sp_changedbowner
[ @loginame = ] N'loginame'
[ , [ @map = ] 'map' ]
[ ; ]
Argumen
[ @loginame = ] N'loginame'
ID masuk pemilik baru database saat ini. @loginame adalah sysname, tanpa default. @loginame harus merupakan login SQL Server yang sudah ada atau pengguna Windows. @loginame tidak bisa menjadi pemilik database saat ini jika sudah memiliki akses ke database melalui akun keamanan pengguna yang ada dalam database. Untuk menghindari skenario ini, hilangkan pengguna dalam database saat ini terlebih dahulu.
[ @map = ] 'peta'
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
Setelah sp_changedbowner
dijalankan, pemilik baru dikenal sebagai pengguna di dbo
dalam database. Pengguna dbo
telah menyiratkan izin untuk melakukan semua aktivitas dalam database.
Pemilik master
database sistem , model
, atau tempdb
tidak dapat diubah.
Untuk menampilkan daftar nilai @loginame yang valid, jalankan prosedur tersimpansp_helplogins
.
sp_changedbowner
Menjalankan hanya dengan parameter @loginame mengubah kepemilikan database menjadi @loginame.
Anda dapat mengubah pemilik yang dapat diamankan dengan menggunakan ALTER AUTHORIZATION
pernyataan . Untuk informasi selengkapnya, lihat MENGUBAH OTORISASI.
Izin
TAKE OWNERSHIP
Memerlukan izin pada database. Jika pemilik baru memiliki pengguna yang sesuai dalam database, memerlukan IMPERSONATE
izin pada login, jika tidak, memerlukan CONTROL SERVER
izin di server.
Contoh
Contoh berikut membuat pemilik masuk Albert
database saat ini.
EXEC sp_changedbowner 'Albert';