Pengguna Database dan Login Server dan Pemetaan di antara mereka


9

Saya memiliki contoh SQL Server 2008 R2 Express Edition di rumah dan yang lain di server di tempat klien yang saya gunakan untuk mengembangkan aplikasi menggunakan Access sebagai ujung depan. Aplikasi ini memiliki 5 login terpisah yang dapat saya gunakan dalam string koneksi (berdasarkan Access Group yang digunakan pengguna). Contoh home memiliki beberapa database - beberapa di antaranya tidak ada hubungannya dengan aplikasi ini

Saya telah secara manual membuat login di setiap instance dari waktu ke waktu (dan mungkin dalam urutan yang berbeda).

Saya berharap dapat (lebih dari sekali) mengambil cadangan dari mesin di rumah saya dari database yang saya kerjakan dan memuatnya pada contoh di tempat klien menggunakan restore, hanya memindahkan file dalam cadangan diatur ke aktual file yang digunakan di server ini selama proses pemulihan. Bagian yang saya tidak mengerti adalah pemetaan antara pengguna basis data dan login.

Saya telah berpikir bahwa korespondensi nama harus cukup, tetapi dalam mencoba untuk memperbaiki masalah di mana pengguna dari database yang dipulihkan tampaknya tidak dipetakan ke login server saya menemukan pernyataan Transact-SQL ALTER USER dan khususnya referensi untuk menggunakan WITH LOGIN dan beberapa diskusi tentang "SID".

Karena (saya kira) nama-nama Server Login memiliki SID yang berbeda di setiap contoh, apakah ini berarti bahwa setelah saya memuat cadangan di antara instance yang harus saya sambungkan kembali pemetaan dengan serangkaian perintah ALTER USER WITH LOGIN?

Jawaban:


9

Loginsatau login server ada di tingkat SQL server, dan database userdi tingkat database. Mereka tidak perlu memiliki nama yang sama, tetapi umumnya demikian. Dalam contoh, Anda tidak dapat memiliki fungsi pengguna database dengan benar tanpa login server SQL yang sesuai.

Katakanlah Anda memiliki sebuah instance: instanceA dengan sever login userA di komputer Anda. Anda dapat memetakan login server ini userA ke pengguna basis data: userA untuk basis data DB_A . Keduanya bernama userA , tetapi satu adalah server logindan satu adalah database user. Pengguna basis data: userA berada di DB_A . Ketika Anda melakukan backup dan restore DB_A dari instanceA ke yang lain instanceB , yang database pengguna: userA dipindahkan, tetapi server login: userA masih tetap pada instanceA. Untuk memindahkan login dari instanceA ke instanceB, Anda dapat menggunakansp_help_revlogin (Klik untuk memeriksa halaman KB) .

Jika sebelumnya Anda telah membuat userA login SQL server di instanceB , maka SQL akan mencoba memetakan login ini dengan pengguna database: userA, ketika DB_A dikembalikan dari instanceA ke instanceB. Jika gagal, Anda dapat menggunakan prosedur sp_change_users_login (Klik untuk tautan BOL) untuk memperbaiki pemetaan yang rusak. Semoga ini jelas.


Terima kasih - saya percaya saya memiliki konsep yang benar, tetapi sp_help_revlogin dan sp_change_users_login dan baru dan saya akan membantu saya. Saya akan menjelajahi lebih banyak. Terima kasih
akc42
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.