sp_changeobjectowner (T-SQL)
Berlaku untuk: SQL Server
Mengubah pemilik objek dalam database saat ini.
Penting
Prosedur tersimpan ini hanya berfungsi dengan objek yang tersedia di SQL Server 2000 (8.x). 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 SCHEMA atau ALTER AUTHORIZATION sebagai gantinya. sp_changeobjectowner
mengubah skema dan pemilik. Untuk mempertahankan kompatibilitas dengan versi SQL Server sebelumnya, prosedur tersimpan ini hanya akan mengubah pemilik objek ketika pemilik saat ini dan pemilik baru memiliki skema yang memiliki nama yang sama dengan nama pengguna database mereka.
Sintaks
sp_changeobjectowner
[ @objname = ] N'objname'
, [ @newowner = ] N'newowner'
[ ; ]
Argumen
[ @objname = ] N'objname'
@objname adalah nvarchar(776), tanpa default.
Nama tabel, tampilan, fungsi yang ditentukan pengguna, atau prosedur tersimpan yang ada di database saat ini. @objname adalah nvarchar(776), tanpa default. @objname dapat memenuhi syarat dengan pemilik objek yang ada, dalam bentuk <existing_owner>.<object_name>
jika skema dan pemiliknya memiliki nama yang sama.
[ @newowner = ] N'newowner'
Nama akun keamanan yang akan menjadi pemilik baru objek. @newowner adalah sysname, tanpa default. @newowner harus merupakan pengguna database, peran server, pengguna Windows, atau grup Windows yang valid dengan akses ke database saat ini. Jika pemilik baru adalah pengguna Windows atau grup Windows yang tidak ada prinsipal tingkat database yang sesuai, pengguna database dibuat.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
sp_changeobjectowner
menghapus semua izin yang ada dari objek. Anda harus menerapkan kembali izin apa pun yang ingin Anda simpan setelah menjalankan sp_changeobjectowner
. Oleh karena itu, kami sarankan Anda membuat skrip izin yang ada sebelum menjalankan sp_changeobjectowner
. Setelah kepemilikan objek berubah, Anda dapat menggunakan skrip untuk menerapkan kembali izin. Anda harus mengubah pemilik objek dalam skrip izin sebelum menjalankan.
Untuk mengubah pemilik yang dapat diamankan, gunakan ALTER AUTHORIZATION
. Untuk mengubah skema, gunakan ALTER SCHEMA
.
Izin
Memerlukan keanggotaan dalam peran database tetap db_owner , atau keanggotaan dalam peran database tetap db_ddladmin dan peran database tetap db_securityadmin , dan juga CONTROL
izin pada objek.
Contoh
Contoh berikut mengubah pemilik tabel menjadi authors
Corporate\GeorgeW
.
EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO