Skema default SQL Server 2008 tidak dihormati?


9

Kami baru saja menyalin database SQL 2008 ke server lain, untuk tujuan pengujian. Pengguna biasa yang masuk menggunakan beberapa objek dalam skema tertentu. Katakanlah itu adalah pengguna foodan skema bar.

fooSkema default adalah barpada tingkat instance dan basis data. Namun, ketika foomasuk tidak dapat menemukan objek dalam barskema tanpa menggunakan nama yang sepenuhnya memenuhi syarat.

Mengapa skema default tidak berfungsi di sini?

Jawaban:


13

Apakah hak pengguna sysadmin untuk SQL Server? Karena jika tidak maka setiap pengguna sysadmin akan memiliki secara default ditugaskan skema dbo , secara independen dari apa yang diatur dalam properti Pengguna untuk database tertentu.

Jadi, untuk memiliki skema default, pengguna harus memiliki peran basis data seperti db_owner, db_datawriter dan sebagainya, alih-alih peran server sysadmin.

Katakan padaku kalau ini bukan kasusmu.


1
Anda adalah dewa dan saya tunduk pada pengetahuan Anda, saya bingung sampai saya menabrak ini!
Jens

1

Skenario lain di mana masalah ini dapat terjadi (SQL 2008 R2) ...

Saya memiliki pengguna yang ditautkan ke Login Otentikasi SQL, yang saya coba kaitkan dengan skema yang ada. Login tidak memiliki hak sysadmin , jadi solusi di atas tidak membantu.

Saya akhirnya tahu bahwa database masih dikonfigurasi dalam mode kompatibilitas SQL 2000. Mengubah ke SQL 2005 menyelesaikan masalah.


Anehnya, saya tampaknya mengalami masalah ini (pengguna terhubung dengan SQL Authentication Login, yang saya coba kaitkan dengan skema yang ada), kecuali tingkat kompatibilitas saya adalah 'SQL Server 2016 (130)'
tbone

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.