Apa yang akan menyebabkan ## MS_PolicyEventProcessingLogin yatim piatu ##?

9

Pagi ini saya perhatikan SQL Log saya terisi dengan pesan berikut:

Proc yang diaktifkan '[dbo]. [Sp_syspolicy_events_reader]' berjalan di antrian 'msdb.dbo.syspolicy_event_queue' menampilkan sebagai berikut:
'Tidak dapat menjalankan sebagai prinsip basis data karena prinsipal "## MS_PolicyEventProcessingLogin ##" tidak ada, jenis ini dari kepala sekolah tidak dapat ditiru, atau Anda tidak memiliki izin. '

Menjalankan yang berikut EXEC sp_change_users_login 'report'mengungkapkan bahwa login sebenarnya telah yatim piatu.

Saya dapat memperbaikinya dengan menjalankan yang berikut seperti yang disarankan dalam posting MSDN ini .

EXEC sp_change_users_login 
    'Auto_Fix', '##MS_PolicyEventProcessingLogin##', 
    NULL, 'fakepassword'

Namun pertanyaannya tetap: Apa yang menyebabkan kepala sekolah ini menjadi yatim piatu? Googling dan penelitian mengungkapkan bahwa orang lain memiliki masalah ini, tetapi saya belum menemukan deskripsi penyebabnya. Tidak ada catatan yang saya sadari terjadi saat kesalahan mulai muncul.

Kami memindahkan seluruh server ke model penyimpanan SAN musim panas lalu, kami memulihkan semuanya (termasuk msdb) selama perpindahan itu tetapi itu berbulan-bulan yang lalu. Itu hanya sesuatu yang baru-baru ini yang membuat gejala terwujud karena tidak muncul di log lebih awal dari beberapa minggu yang lalu.

RThomas
sumber

Jawaban:

3

Kami memutakhirkan dua server (dari SQL 2000) ke SQL 2008R2 menggunakan peningkatan di tempat. Kami mulai mendapatkan pesan-pesan ini dalam log SQL setelah peningkatan. Kami tidak mengubah ini atau info masuk atau pengguna lainnya selama proses pemutakhiran.

Dugaan saya adalah proses pemutakhiran membuat dua akun ( ##MS_PolicyEventProcessingLogin##dan ##MS_PolicyTsqlExecutionLogin##) menjadi yatim.

EXEC sp_change_users_login 'Auto_Fix', '<User Name>' memperbaiki masalah ini.

B Singh
sumber
2

Penyebab umum: seseorang menjatuhkan login (berpikir mereka sedang membersihkan login yang buruk) atau mengembalikan salah satu database sistem.

Sulit untuk menebak apa ini setelah fakta. Di basis data pengguna, Anda bisa melihat log transaksi untuk merekayasa baliknya, tetapi Anda tidak bisa melakukan pencadangan log untuk master, sehingga Anda kurang beruntung.

Brent Ozar
sumber
0

Saya pikir Anda telah memulihkan msdb, tetapi Anda memiliki database master baru.

Razvan Socol
sumber