ฉันมีงานที่กำหนดเวลาไว้ (ใน Windows Task Scheduler) ที่เชื่อมต่อกับ SQL Server โดยใช้ SMO (Windows Authentication) และสร้างการสำรองฐานข้อมูล ถึงตอนนี้งานนี้ทำงานภายใต้บัญชีผู้ดูแลระบบและฉันต้องการเปลี่ยนให้ใช้บัญชีระบบแทน
ฉันเปลี่ยนงานที่กำหนดและแปลกใจที่สุดของฉันมันทำงานนอกกรอบ
ฉันต้องการที่จะเข้าใจว่าทำไมในกรณีนี้ ระบบคือ Windows Server 2012 R2 และฐานข้อมูลคือ SQL Server 2012 (SP1) Express Edition เป็นการติดตั้งมาตรฐานโดยเพิ่มผู้ใช้ SQL Auth หนึ่งราย
ใน SSMS นี่คือการเข้าสู่ระบบและบทบาทเซิร์ฟเวอร์ที่เกี่ยวข้อง:
MS_PolicyEventProcessingLogin ## (ปิดใช้งาน)
MS_PolicyTsqlExecutionLogin ## (ปิดใช้งาน)
- MyServer \ Administrator (สาธารณะดูแลระบบ)
- MySqlAuthUser (สาธารณะ)
- BUILTIN \ Users (สาธารณะ)
- NT AUTHORITY \ SYSTEM (สาธารณะ)
- NT SERVICE \ MSSQLSERVER (สาธารณะ, ดูแลระบบ)
- NT SERVICE \ SQLWriter (สาธารณะ, ดูแลระบบ)
- NT SERVICE \ Winmgmt (สาธารณะ, ดูแลระบบ)
- สา (สาธารณะ, ดูแลระบบ)
ฐานข้อมูลเองมีผู้ใช้และบทบาทต่อไปนี้:
- MySqlAuthUser (เข้าสู่ระบบ MySqlAuthUser) (db_owner)
- dbo (เข้าสู่ระบบ sa) (db_owner)
- แขก(ปิดการใช้งาน)
- Information_SCHEMA (ปิดการใช้งาน)
- sys (ปิดการใช้งาน)
การดู "สิทธิ์ที่มีประสิทธิภาพ" ของผู้ใช้ NT AUTHORITY \ SYSTEM ให้ผลลัพธ์ต่อไปนี้:
- แก้ไขกลุ่มความพร้อมใช้งานใด ๆ
- เชื่อมต่อ SQL
- สร้างกลุ่มห้องว่าง
- ดูฐานข้อมูลใด ๆ
- ดูสถานะเซิร์ฟเวอร์
เหตุใด NT AUTHORITY \ SYSTEM จึงมีสิทธิ์ในการสำรองฐานข้อมูล ฉันดีใจที่มันทำ แต่ฉันอยากจะเข้าใจว่าทำไม ...