Jika dump SQL Server database pengguna dikembalikan ke
SQL Server yang berbeda (seperti server backup panas) atau sama SQL Server
Setelah membangun kembali atau reload versi lama dari master database,
pengguna login dan hak akses pada database mungkin salah.
Ini
masalah dapat mengungkapkan dirinya sendiri dalam beberapa cara:
- Sementara log on ke 6.x server, pengguna dapat menerima
galat berikut:
MSG 4002, tingkat 14, negara bagian 1, Server
Microsoft SQL Server, Line 0
Login gagal
DB-perpustakaan: Login
tidak benar.
- Sementara log on ke 7.0 server, pengguna dapat menerima
galat berikut:
MSG 18456, tingkat 14, negara bagian 1,
Login
gagal untuk pengguna '% ls'.
- Ketika mencoba untuk mengakses objek dalam database, pengguna
mungkin menerima galat berikut:
MSG 229, tingkat 14, negara
1
%s izin ditolak pada objek %. * s, database %. * s, pemilik %.*s
- Ketika mencoba untuk membuat sebuah login dan memberikan akses ke
dikembalikan database, atau menambahkan pengguna ke database, galat berikut mungkin
menerima:
Microsoft SQL-DMO (ODBC SQLState: 42000) kesalahan
15023: Pengguna atau peran '% s' sudah ada dalam database saat ini.
- Pengguna dapat memiliki izin pada objek yang mereka
sebelumnya tidak.
Informasi logon pengguna disimpan di tabel syslogins di
master database. Dengan mengubah server, atau dengan mengubah informasi ini oleh
membangun kembali atau mengembalikan versi lama dari database master, informasi
mungkin berbeda dari ketika pengguna database dump diciptakan. Jika tidak login
ada untuk pengguna, mereka akan menerima kesalahan menunjukkan "Login gagal" saat
mencoba logon ke server. Jika pengguna login memang ada, tapi SUID
nilai (untuk 6.x) atau nilai-nilai SID (untuk 7.0) di master.syslogins dan sysusers
tabel dalam database pengguna berbeda, pengguna mungkin memiliki hak akses yang berbeda
dari yang diharapkan dalam database pengguna.
Catatan Jika Anda menggunakan Microsoft SQL Server 2005,
syslogins tabel dan
sysusers Tabel diimplementasikan sebagai kompatibilitas dilihat. Pandangan-pandangan ini
sys.syslogins dan
sys.sysusers. Untuk informasi lebih lanjut tentang kompatibilitas pandangan, lihat topik "Kompatibilitas tampilan (Transact-SQL)" dalam SQL Server 2005 buku Online.
Untuk mengatasi masalah ini, lakukan salah satu berikut ini:
- Jika saat ini skrip tersedia untuk menambah login, pengguna, dan
izin, drop dan membuatnya kembali dari script. Untuk contoh menggunakan script
untuk mentransfer login antara server, lihat Basis Pengetahuan Microsoft berikut
Artikel:
246133
(http://support.microsoft.com/kb/246133/
)
CARA: Mentransfer login dan password antara contoh-contoh SQL Server
240872
(http://support.microsoft.com/kb/240872/EN-US/
)
Cara mengatasi masalah izin ketika Database pindah antara SQL Server
- Anda dapat menggunakan
sp_change_users_login disimpan prosedur untuk reassociate hubungan antara
Tabel syslogins, sysusers dan sysalternates. Namun, prosedur membuat terbaik
memperkirakan pada link, dan memungkinkan pengguna hak akses lebih daripada yang dimaksudkan.
Menjalankan prosedur dengan laporan pilihan pertama akan menghasilkan daftar
pengguna yang akan diubah. Setelah itu, Anda harus memeriksa untuk memastikan bahwa
mempengaruhi pengguna memiliki izin yang sesuai. Perlu diketahui juga bahwa
sp_change_users_login prosedur tidak memperbaiki masalah izin yang berasal dari
login dan pengguna dibuat dalam urutan yang berbeda pada database di mana cadangan
dikembalikan.
- Memulihkan dump dari
database master dari waktu pengguna database dump ke server
sebelum loading pengguna database. Melakukan hal ini menjamin bahwa semua informasi pengguna
di pengguna database sesuai dengan benar dengan tabel syslogins master.
PERINGATAN: Database master berisi informasi server-lebar, dan
mempengaruhi semua database pada server. Oleh memulihkan master database, Anda mungkin
pertemuan tambahan user id dan/atau database yang hilang atau salah
izin. Setiap perubahan master yang telah terjadi sejak saat
cadangan akan hilang. Hanya gunakan metode ini jika Anda yakin bahwa cadangan
Versi database master berisi informasi yang akurat untuk pengguna
database yang bersangkutan dan semua database pada server. - Gunakan Transfer
Manajer (untuk 6.x) atau DTS (untuk 7.0) untuk menyalin login. Sadarilah bahwa
password tidak akan ditransfer menggunakan metode ini.
- Kontak Anda
dukungan utama penyedia.
ID Artikel: 168001 - Kajian Terakhir: 15 September 2011 - Revisi: 2.0
Berlaku bagi:
- Microsoft SQL Server 6.0 Standard Edition
- Microsoft SQL Server 6.5 Standard Edition
- Microsoft SQL Server 7.0 Standard Edition
- Microsoft SQL Server 2000 Standard Edition
- Microsoft SQL Server 2005 Standard Edition
- Microsoft SQL Server 2005 Developer Edition
- Microsoft SQL Server 2005 Enterprise Edition
- Microsoft SQL Server 2005 Express Edition
- Microsoft SQL Server 2005 Workgroup Edition
| kbprb kbusage kbmt KB168001 KbMtid |
Penerjemahan MesinPENTING: 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:
168001
(http://support.microsoft.com/kb/168001/en-us/
)