Cara mengatasi masalah izin ketika Anda memindahkan database antara server yang menjalankan SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 240872 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menjelaskan cara untuk memetakan standar dan terpadu login untuk menyelesaikan masalah izin ketika Anda memindahkan database antara server yang menjalankan SQL Server.

INFORMASI LEBIH LANJUT

Ketika Anda memindahkan database dari satu server yang menjalankan SQL Server ke server lain yang menjalankan SQL Server, ketidakcocokan dapat terjadi antara nomor identifikasi keamanan (Sid) dari login di Master database dan pengguna di pengguna database. Secara default, SQL Server 7.0, SQL Server 2000 dan SQL Server 2005 memberikan The sp_change_users_login sistem disimpan prosedur untuk memetakan pengguna ini serasi. Namun, Anda hanya dapat menggunakan sp_change_users_login disimpan prosedur untuk memetakan standar SQL Server login dan Anda harus melakukan ini pemetaan untuk satu pengguna pada suatu waktu. Untuk informasi lebih lanjut tentang sp_change_users_login disimpan prosedur, lihat topik "sp_change_users_login" di SQL Server 7.0, SQL Server 2000, dan SQL Server 2005 buku secara Online.

Dalam SQL Server 7.0 atau Versi yang lebih baru, Anda dapat mempertahankan pemetaan antara login di Master database dan pengguna di pengguna database dengan menggunakan SIDs. Pemetaan ini diperlukan untuk mempertahankan benar izin untuk login di pengguna database. Ketika pemetaan ini hilang, login memiliki izin isu-isu yang termasuk tetapi tidak terbatas pada berikut:
  • Jika login SQL Server tidak ada pada server baru, dan pengguna mencoba untuk log on, pengguna akan menerima galat berikut pesan:
    Server: Msg 18456, tingkat 16, negara bagian 1
    Login gagal untuk pengguna '% ls'.
  • Jika ada SQL Server login pada server baru, tetapi SID di Master database yang berbeda dari SID di pengguna database, pengguna dapat log on ke SQL Server berhasil; Namun, ketika pengguna mencoba untuk mengakses database tersebut, pengguna akan menerima pesan galat berikut:
    Server: Msg 916, tingkat 14, negara 1, Line1
    Server pengguna ' %. * ls' adalah tidak valid user dalam database ' %. * ls'.
    Catatan Dalam SQL Server 2005, pengguna akan menerima pesan galat berikut:

    Server pengguna '% s' adalah tidak valid user dalam database '% s'. Menambahkan account pengguna ke database pertama.
Untuk informasi lebih lanjut tentang model SQL Server 7.0 keamanan, melihat kertas putih "Microsoft SQL Server 7.0 keamanan". Untuk melihat putih kertas, kunjungi Web site Microsoft berikut:
.aspx http://msdn2.Microsoft.com/en-us/library/Aa226173 (SQL.70)
Untuk informasi lebih lanjut tentang model SQL Server 2000 keamanan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
322712Microsoft SQL Server 2000 S322712 keamanan fitur dan praktik terbaik

Pembatasan

  • Jika pengguna di sysusers meja tanpa Prefiks nama komputer atau nama domain yang memiliki objek dan objek-objek ini dirujuk dalam aplikasi dengan menggunakan nama dua bagianusername.objectname, the aplikasi dapat merusak karena sp_sidmap disimpan prosedur mengganti nama pengguna ini dengan awalan nama komputer atau nama domain seperti itu muncul di sysxlogins tabel. Untuk mengatasi masalah ini, setelah sp_sidmap disimpan prosedur selesai, mengubah nama pengguna yang terpengaruh dalam The sysusers tabel untuk nama bekas atau hubungi dukungan utama Anda penyedia.
  • Artikel ini tidak mempertimbangkan alias. Anda harus mengelola alias secara manual.
  • Jika sebuah login SQL Server standar tidak ada di atas baru SQL Server server, Anda dapat menambahkan login dengan sandi NULL. Anda mungkin harus mengubah password untuk login ini sesuai.
  • Jika pengguna telah dibuat di pengguna database dengan nama yang berbeda dari apa yang muncul dalam sysxlogins meja, mustahil untuk tahu login sesuai untuk itu pengguna. Oleh karena itu, sebelum Anda menjalankan sp_sidmap disimpan prosedur:
    1. Mentransfer semua objek pengguna ini memiliki untuk pementasan database.
    2. Drop pengguna, tambah pengguna yang memiliki nama yang benar, dan kemudian transfer kembali semua objek untuk pengguna ini.
  • Jika pengguna telah login sesuai maupun awalan nama komputer lokal atau nama domain, Anda menerima pesan untuk pengguna ini. Pesan ini menunjukkan bahwa Anda harus terlebih dahulu menambahkan pengguna pada Windows tingkat dan kemudian menambahkannya ke SQL Server sebagai login. Setelah Anda melakukan ini, Anda harus menjalankan sp_sidmap disimpan prosedur lagi.
  • Jika pengguna memiliki awalan baik nama domain atau nama server Windows lokal, tapi login sesuai tidak ada di sysxlogins meja, disimpan prosedur mencoba untuk menambahkan ini sebagai login baru ke SQL Server. Jika pengguna Windows tidak ada, itu menghasilkan pesan output di jendela hasil dan kemudian secara manual menciptakan login setelah pertama kali menambahkan pengguna Windows.
  • Jika ada lebih dari satu login untuk pengguna dalam sysusers tabel, Anda melihat pesan output dalam file hasil dan daftar semua login yang memiliki nama pengguna yang sama. Pada titik ini, Anda harus secara manual campur tangan untuk memastikan bahwa pengguna sesuai dengan hanya satu login.

    Contoh Jika sysusers tabel telah pengguna bernama "johndoe" dan sysxlogins tabel telah login dengan nama seperti "Test\johndoe" dan "Test2\johndoe", ketika Anda menjalankan prosedur yang tersimpan, Anda menerima pesan yang bahwa salah satu pengguna memiliki lebih dari satu login dan bahwa sistem Administrator harus memilih salah satu. Ini adalah satu-satunya waktu bahwa Anda harus menjalankan disimpan prosedur kedua, sp_prefix_sysusersname, yang tersedia di dalam artikel ini. Selain itu, situasi ini dijelaskan secara rinci dalam Readme.txt file.

Peta standar dan terpadu login

Setelah Anda memindahkan database dari satu server yang menjalankan SQL Server server ke server lain yang sedang menjalankan SQL Server server, ikuti langkah-langkah untuk campur tangan pengguna minimal:

SQL Server 7.0 dan SQL Server 2000

  1. Pastikan bahwa ada sebuah login di sysxlogins Tabel di Master database untuk setiap pengguna sysusers tabel database.

    Catatan Untuk menambahkan sebuah standar SQL Server login, baca topik "sp_addlogin" dalam SQL Server buku secara Online. Untuk menambahkan terpadu SQL Server masuk, melihat "sp_grantlogin" topik dalam SQL Server buku Online.
  2. Men-download MapSids.exe file, dan kemudian ekstrak Sp_sidmap.SQL dan Readme.txt file.
  3. Log on ke server yang menjalankan SQL Server sebagai sistem administrator, dan kemudian jalankan file Sp_sidmap.sql dalam database pengguna. Menjalankan berkas Sp_sidmap.sql menciptakan disimpan prosedur dua, sp_sidmap dan sp_prefix_sysusersname.
  4. Pastikan bahwa database tidak diakses oleh lainnya pengguna daripada yang menjalankan disimpan prosedur.
  5. Pastikan bahwa permintaan Analyzer menampilkan hasil dalam teks format format dan tidak dalam grid. Untuk melakukannya, baik tekanCTRL ^ T tombol, atau klik Permintaan, lalu klik Hasil dalam teks. Hal ini sangat penting sehingga Anda dapat melihat hasil dan pesan informasi satu jendela dan menyimpan output file teks. Anda mungkin perlu file ini kemudian untuk menyelesaikan beberapa pemetaan.
  6. Karena Anda tidak dapat memverifikasi apakah parameter berlalu dengan benar, pastikan untuk melewati mereka dengan benar ke sp_sidmap disimpan prosedur:
    EXEC sp_SidMap @old_domain = old_domain_name,
    @new_domain = new_domain_name,
    @old_server = old_server_name,
    @new_server = new_server_name
    Mengganti nilai-nilai untuk nama domain yang lama dan baru dan nama server tepat.
  7. Simpan hasil dalam file dan ikuti petunjuk yang disediakan di Readme.txt file.

    Catatan Ketika Anda menjalankan prosedur ini disimpan, sysusers meja adalah tabel hanya bahwa perubahan dalam database. Untuk kembali untuk sebuah negara di mana Anda mulai, restore database dari cadangan atau kembali database.

SQL Server 2005

Jika Anda menjalankan SQL Server 2005, menggunakan DENGAN LOGIN ayat ALTER PENGGUNA pernyataan untuk memetakan ulang pengguna untuk login baru. Untuk informasi lebih lanjut, kunjungi Web site Microsoft Developer Network (MSDN) berikut:
http://MSDN.Microsoft.com/en-us/library/ms176060.aspx
Catatan Untuk menggunakan DENGAN LOGIN ayat ALTER PENGGUNA pernyataan, Anda harus menerapkan SQL Server 2005 Paket Layanan 2.

REFERENSI

Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
274188"Mengatasi masalah pengguna yatim" topik di buku Online tidak lengkap
246133 Cara mentransfer login dan password antara contoh-contoh SQL Server
168001 Pengguna masuk dan/atau izin kesalahan setelah memulihkan dump
298897 CONTOH: Mapsids.exe membantu peta SIDs antara pengguna dan database Master ketika Database pindah

Properti

ID Artikel: 240872 - Kajian Terakhir: 20 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbsqlsetup kbhowtomaster kbmt KB240872 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:240872

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com