Bagikan melalui


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.

Konvensi sintaks transact-SQL

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