Saya memiliki tugas terjadwal (dalam Penjadwal Tugas Windows) yang menghubungkan ke SQL Server menggunakan SMO (Windows Authentication) dan membuat cadangan basis data. Sejauh ini, tugas ini berjalan di bawah akun Administrator dan saya ingin mengubahnya untuk menggunakan akun SYSTEM sebagai gantinya.
Saya mengubah tugas yang telah dijadwalkan dan, yang mengejutkan saya, ternyata berhasil.
Saya ingin mengerti mengapa ini terjadi. Sistem ini adalah Windows Server 2012 R2, dan basis datanya adalah SQL Server 2012 (SP1) Express Edition. Ini adalah instalasi standar dengan satu pengguna SQL Auth ditambahkan.
Di SSMS, ini adalah info masuk dan peran server terkait:
MS_PolicyEventProcessingLogin ## (dinonaktifkan)
MS_PolicyTsqlExecutionLogin ## (dinonaktifkan)
- MyServer \ Administrator (publik, sysadmin)
- MySqlAuthUser (publik)
- BUILTIN \ Pengguna (publik)
- NT AUTHORITY \ SYSTEM (publik)
- NT SERVICE \ MSSQLSERVER (publik, sysadmin)
- LAYANAN NT \ SQLWriter (publik, sysadmin)
- LAYANAN NT \ Winmgmt (publik, sysadmin)
- sa (publik, sysadmin)
Basis data itu sendiri memiliki pengguna berikut dan peran mereka:
- MySqlAuthUser (Login MySqlAuthUser) (db_owner)
- dbo (Login sa) (db_owner)
- tamu (dinonaktifkan)
- INFORMATION_SCHEMA (dinonaktifkan)
- sys (dinonaktifkan)
Melihat "izin efektif" pengguna NT AUTHORITY \ SYSTEM menghasilkan output berikut:
- ALTER KELOMPOK KETERSEDIAAN APA SAJA
- CONNECT SQL
- BUAT KELOMPOK KETERSEDIAAN
- LIHAT DATABASE APA PUN
- LIHAT NEGARA SERVER
Mengapa NT AUTHORITY \ SYSTEM memiliki izin untuk membuat cadangan basis data? Saya senang itu terjadi, tetapi saya benar-benar ingin memahami mengapa ...