Mengapa NT AUTHORITY \ SYSTEM dapat membuat cadangan database SQL Server?

9

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 ...

Heinzi
sumber

Jawaban:

11

Izin minimum untuk membuat cadangan basis data ada PUBLICdi tingkat server dan DB_BACKUPOPERATORdi tingkat basis data.

Dalam SQL Server 2005, Microsoft merekomendasikan agar tidak menghapus NT AUTHORITY\SYSTEMdari peran sysadmin:

Akun NT AUTHORITY \ SYSTEM juga diberikan login SQL Server. Akun NT AUTHORITY \ SYSTEM disediakan dalam peran server tetap SYSADMIN. Jangan menghapus akun ini atau menghapusnya dari peran server tetap SYSADMIN. Akun NT AUTHORITY \ SYSTEM digunakan oleh Microsoft Update dan oleh Microsoft SMS untuk menerapkan paket layanan dan perbaikan terbaru untuk instalasi SQL Server 2005. Akun NT AUTHORITY \ SYSTEM juga digunakan oleh SQL Writer Service.

Ini tidak lagi terjadi pada tahun 2012. Saya memeriksa ulang pada contoh saya sendiri 2012 Express: NT AUTHORITY\SYSTEMbukan sysadmin. Namun, SQL Service VSS Writer ini berjalan sebagai NT AUTHORITY\SYSTEMdan merupakan sysadmin.

Saya tidak dapat menemukan tautan yang mencadangkan bahwa ini sebabnya NT AUTHORITY\SYSTEMdiizinkan untuk membuat cadangan basis data, tetapi saya yakin itulah masalahnya.

Katherine Villyard
sumber