Saya harus memindahkan beberapa database SQL Server 2008 ke server db baru kami, jadi saya mencadangkan semuanya (ke file .bak), menyalin file-file ini ke kotak baru dan mengembalikannya (semua dilakukan dengan menggunakan SQL Management Studio).
Semua berjalan baik, tetapi sekarang saya merasa saya tidak bisa login ke salah satu database menggunakan akun SQL Server yang terus bekerja pada RDBMS lama. Login yang diautentikasi Windows saya masih berfungsi dengan baik secara tidak sengaja.
Saya memiliki ide ini, pengguna dan izin semuanya akan diduplikasi dengan mulus ke server database baru tetapi tampaknya ada sesuatu yang salah di suatu tempat. Saya akan sangat menghargai komentar / saran / tawaran bantuan ;-)
Ini dikenal sebagai "pengguna yatim piatu". Berikut adalah 2 cara untuk memperbaikinya
Jika Anda bisa, pulihkan database master asli sebagai "loginsource" dan sys.server_principals memiliki info yang cukup untuk menghasilkan semua login SQL Server dan Windows. Yaitu, SID dan kata sandi terenkripsi
Jika Anda menggunakan login Windows saja, maka Anda dapat menjalankan ini per database untuk menghasilkan skrip
Naskah:
sumber
Idealnya Anda akan skrip pengguna dan izin sebelum melakukan pengembalian. Jika itu belum terjadi, maka Anda perlu memperbaiki hal-hal setelah fakta, dan kemungkinan ada sesuatu yang terlewatkan tetapi Anda harus bisa mendapatkan sekitar 90% dari perjalanan ke sana.
Hal pertama yang perlu Anda pastikan adalah apakah login yang sama ada di server baru. Jika tidak maka Anda harus mencari tahu apakah itu boleh untuk login yang akan dibuat di server baru. Jangan pernah berasumsi bahwa mereka harus diciptakan, mungkin ada alasan bagus mengapa mereka tidak ada sejak awal. Anda kemudian dapat membuat mereka dengan menggali melalui tabel sysusers.
Anda dapat memperbaiki pengguna yatim dengan menjalankan sesuatu yang mirip dengan yang berikut:
Kode ini akan berfungsi untuk SQL2008, tetapi ditulis agar kompatibel dengan SQL2000.
sumber
Anda dapat merujuk URL berikut untuk memperbaiki izin pengguna basis data
http://mywindowsblog.com/?p=287
sumber
Berikut ini adalah artikel singkat yang menjelaskan solusinya:
Memulihkan login yatim di SQL Server setelah memulihkan database
sumber