Sebagai aturan, Anda harus menentukan skema secara eksplisitdbo
jika Anda ingin membuat objek dalam skema ini.
Seperti Anda db_owner
, skema default Anda adalah dbo
, jadi tidak ada masalah ketika Anda tidak menentukan skema dbo saat membuat objek. Tetapi untuk pengguna (Windows) lainnya tidak sama.
Pengguna Anda adalah anggota Windows group
yang tidak memiliki skema default. Dalam hal ini pengguna yang sesuai dan skema dibuat ketika pengguna membuat objek apa pun, itu didokumentasikan di sini: CREATE SCHEMA (Transact-SQL)
Skema Tersirat dan Pembuatan Pengguna
Dalam beberapa kasus, pengguna dapat menggunakan basis data tanpa memiliki akun pengguna basis data (kepala basis data dalam basis data). Ini dapat terjadi dalam situasi berikut:
Login memiliki hak istimewa CONTROL SERVER.
Pengguna Windows tidak memiliki akun pengguna basis data individual (basis data dalam basis data), tetapi mengakses basis data sebagai anggota grup Windows yang memiliki akun pengguna basis data (basis data basis untuk kelompok Windows).
Ketika pengguna tanpa basis data akun pengguna membuat objek tanpa menentukan skema yang ada, prinsip basis data dan skema default akan secara otomatis dibuat dalam database untuk pengguna tersebut. Prinsip dan skema basis data yang dibuat akan memiliki nama yang sama dengan nama yang digunakan pengguna saat menghubungkan ke SQL Server (nama login otentikasi Server SQL atau nama pengguna Windows).
Perilaku ini diperlukan untuk memungkinkan pengguna yang didasarkan pada grup Windows untuk membuat dan memiliki objek. Namun hal itu dapat mengakibatkan pembuatan skema dan pengguna yang tidak disengaja. Untuk menghindari secara tidak sengaja menciptakan pengguna dan skema, bila memungkinkan secara eksplisit membuat prinsip-prinsip basis data dan menetapkan skema default. Atau secara eksplisit nyatakan skema yang ada saat membuat objek dalam database, menggunakan nama objek dua atau tiga bagian.
Untuk mengatasi masalah ini, tetapkan dbo
skema default schema
untuk semua grup pengguna-Windows atau tulis skema secara eksplisit saat membuat objek. Selalu.