Kemarin saya menanyakan pertanyaan ini tentang mengubah dbo dari beberapa database yang saya miliki. Perubahan itu masuk akal, tetapi saya ingin menjadi jelas.
Adakah alasan atau keadaan yang bagus mengapa saya tidak seharusnya mengatur dbo database ke [sa]?
Jawaban:
Menjadikan SA sebagai pemilik database sebenarnya menyederhanakan dan / atau menyelesaikan sejumlah hal, tetapi dapat memiliki beberapa implikasi keamanan.
Secara khusus, ingat bahwa jika SA adalah pemilik basis data, maka
dbo = 'SA'
. Ini berarti, antara lain, setiap prosedur dalam skema [dbo] (yang merupakan default) yang memiliki "EXECUTE As Owner" di dalamnya, sebenarnya menjalankan sebagai SA. Itu tidak cukup seburuk kedengarannya, karena kecuali Anda telah menandai database sebagai dapat dipercaya, SQL Server tidak akan membiarkan sesi atau tugas dari database dengan kepala sekolah tingkat server menyamar seperti itu.Yang memunculkan poin berikutnya: jangan pernah menandai database seperti TRUSTWORTHY, kecuali Anda benar - benar yakin bahwa itu aman. Karena siapa pun dengan kemampuan untuk membuat prosedur dalam skema [dbo] dapat mengeksekusi sebagai SA, di seluruh server, jika mereka mau.
Masalah lain dapat muncul karena banyak produk dan aplikasi yang memiliki database SQL Server mereka sendiri, sering kali menentukan bahwa login aplikasi mereka harus menjadi DBO database. Jelas Anda dapat mengatasinya dengan membuat login aplikasi mereka menjadi 'SA'. Mudah-mudahan, itu juga jelas bahwa Anda tidak boleh melakukan itu, kecuali bahwa SQL Server Instance tidak digunakan untuk hal lain (bahkan kemudian, saya akan merekomendasikan menentangnya).
sumber