Saya memiliki database pengujian yang mengalami masalah izin.
Saya tidak dapat mengakses database pelaporan, dan dokumentasi bantuan aplikasi mengatakan untuk melakukan hal berikut:
Resolution:
1. Launch the SQL Server Management Studio and connect to the database server(s) hosting the Vision and Reporting Server databases.
2. Expand the security folder.
3. Select logins and right click on the <username> user and choose properties.
4. Click the User Mapping tab
5.Make sure the following databases are selected in the Users mapped to this Login:
ReportServer
ReportServerTempDB
Your Vision databases
This maps the login/user to the respective databases.
6. As you select each database (including your Vision database), select the db_owner role in the Database role membership for: section. You must select this option for each database.
Ketika saya melakukan ini, saya mendapatkan kesalahan berikut:
"Create failed for user '<servername>\<username>'. User, group, or role '<servername>\<username>' already exists in the current database. (Microsoft SQL Server, Error: 15023)"
Saya telah mencari kesalahan ini di Google dan mencoba perintah berikut pada setiap basis data:
ALTER USER [<username>] WITH LOGIN = [<username>]
Pesan menunjukkan bahwa perintah selesai dengan sukses tetapi saya masih mendapatkan kesalahan di atas ketika saya mencoba memetakan setiap basis data seperti yang diperintahkan di atas.
Apa yang saya lewatkan?
Per Kin komentar (terima kasih) saya mencoba ini: - Saya mengklik kanan pengguna dan memilih: Script Login As> Drop and Create To> Jendela permintaan baru. - Saya menjalankan kueri yang dihasilkan dan mencoba memetakan peran pengguna dengan memilih dua database dan db_owner lainnya lagi tetapi saya masih mendapatkan pesan kesalahan yang sama seperti di atas.
Pikiran??
Saya menggunakan Auto_Fix dengan
sp_change_users_login
di lingkungan dev saya untuk memperbaiki masalah seperti itu (Kesalahan 15023). Hindari menggunakan Auto_Fix dalam situasi sensitif-keamanan.Juga, perhatikan bahwa fitur ini dapat dihapus dalam versi Microsoft SQL Server di masa depan.
Referensi Lainnya:
sumber
Apakah pendekatan yang tepat.
Jika tidak, buka:
Keamanan> Login> (nama pengguna Anda)> Properti> Pemetaan Pengguna
dan remap pengguna itu ke database yang Anda inginkan.
Anda dapat menggunakan kueri berikut dalam konteks basis data Anda untuk memeriksa anak yatim:
sumber
buka database master dan hapus pengguna
sumber