ฉันจะกำหนดค่า SQL Server 2012 เพื่อให้สามารถเรียกคืนและดูไฟล์ในบัญชีผู้ใช้ของฉันได้อย่างไร


10

ฉันมีอินสแตนซ์ SQL Server 2012 ที่เรียกใช้เป็นบริการบนคอมพิวเตอร์ของฉันและตามหน้าบริการจะล็อกออนเป็นบัญชี "NT Service \ MSSQLSERVER" อย่างไรก็ตามฉันไม่สามารถเห็นชื่อบัญชีนั้นได้ทุกที่รวมถึงในพื้นที่ "ผู้ใช้ท้องถิ่นและกลุ่ม" ในหน้าจอการจัดการคอมพิวเตอร์เพราะตามที่ลิงค์ด้านล่างบอกว่านั่นไม่ใช่บัญชีผู้ใช้มันเป็นชื่อบริการในกล่องนั้น Microsoft จึงมีข้อความว่า "บัญชี" ที่เป็นประโยชน์ เมื่อมาถึงจุดนี้ฉันสามารถเห็นหลายคนกำลังสับสน

งานที่ฉันพยายามทำให้สำเร็จคือการกู้คืนไฟล์โดยใช้กล่องโต้ตอบ "ค้นหาไฟล์สำรองข้อมูล" SSMS ซึ่งใช้ไดอะล็อกอย่างสมบูรณ์ซึ่งไม่เหมือนกับไดอะล็อกเปิดไฟล์ windows มาตรฐานใด ๆ อาจเป็นเพราะทำงาน "รีโมต" และทำงานจาก บริบทความปลอดภัยของเซิร์ฟเวอร์ SQL ซึ่งเป็นอีกแหล่งที่มาของความสับสนของผู้ใช้ขั้นปลายที่ฉันหวังว่าคำถามนี้อาจช่วยให้ชัดเจนขึ้น

จนถึงตอนนี้ถ้าฉันต้องการกู้คืนไฟล์. mdf / .bak สำรองที่ฉันมีอยู่ในโฟลเดอร์ใดโฟลเดอร์หนึ่งของฉันฉันต้องตั้งค่าโฟลเดอร์นั้นให้ทุกคนสามารถอ่านได้หรืออย่างอื่นฉันไม่สามารถเข้าไปที่นั่นด้วย SQL Server "ค้นหาการสำรองข้อมูล หน้าต่างไฟล์ " ฉันพบว่าความคิดนี้ว่าคุณกำลังใช้ GUI พูดคุยกับบริการที่มีบัญชีผู้ใช้และสิทธิ์ที่แตกต่างจากคุณซึ่งไม่มีใครใน Microsoft ที่ได้รับการเอาใจใส่ที่จะทำให้คุณชัดเจนและสับสนมากแม้ว่าฉันจะมีประสบการณ์กับการบริหารระบบ windows .

ฉันหวังว่าฉันพลาดเอกสารหน้าบางส่วนสำหรับ SQL Server ที่จะบอกคุณหลังจากติดตั้งอินสแตนซ์เซิร์ฟเวอร์ SQL ใหม่แล้วคุณจะตั้งค่าความปลอดภัยได้อย่างไร

โพสต์ในฟอรัมเช่นนี้มีแม้แต่เจ้าหน้าที่ของไมโครซอฟท์ที่พูดว่า "นี่มันซับซ้อน" และมัน "เปลี่ยนอีกครั้ง" ใน Denali ตอนนี้ทำงานอย่างไรใน SQL Server 2012 และฉันจะเพิ่มสิทธิ์ในการอ่านไฟล์ที่เป็นของผู้ใช้เพื่อความปลอดภัยของโปรแกรมฐานข้อมูล SQL ได้SIDอย่างไร


เหตุผลที่ SQL ไม่ใช้กล่องโต้ตอบมาตรฐานคือคุณไม่สามารถเลือกไฟล์ที่ SQL ไม่สามารถอ่านได้ เกี่ยวกับวิธีกำหนดค่าความปลอดภัยคุณเปิดเพื่อเปลี่ยนบัญชีที่ SQL ทำงานภายใต้หรือคุณต้องการปล่อยให้เป็นแบบนี้หรือไม่? หากเปลี่ยนบัญชีบริการไม่เป็นไรคุณสามารถดูแลได้ง่าย เราใช้บัญชีที่มีชื่อดังนั้นฉันไม่สามารถทำการทดสอบกับบัญชี MSSQLSERVER ทั่วไปเพื่อช่วยในเรื่องนั้นได้
cfradenburg


หากทุกคนเปลี่ยนเซิร์ฟเวอร์ SQL ให้ทำงานด้วย ID ผู้ใช้ปกติเมื่อทำการพัฒนานั่นอาจเป็น "แนวปฏิบัติที่ดีที่สุด" ฉันแค่สงสัยว่าเป็นความคิดที่ดีหรือไม่ หากการเพิ่ม "NT Service \ MSSQLSERVER" ด้วยตนเองลงในโฟลเดอร์ที่ฉันต้องการเพิ่มเป็นแนวคิดมาตรฐานฉันคิดว่าจะเป็นการแก้ไขขั้นต่ำที่สมเหตุสมผลที่สุดใช่ไหม? ฉันหวังว่าเซิร์ฟเวอร์ SQL SSMS UI นั้นง่ายกว่าเล็กน้อยในการเชื่อมต่อกับ ID บัญชี "NT Server \ xxx" ที่ซ่อนอยู่นี้
Warren P

คำตอบ:


5

สำหรับการอ้างอิง "Denali" เป็น SQL Server 2012 สำหรับ "ผู้ใช้ปลายทาง" ฉันไม่ใช่ทุกคนที่เกี่ยวข้องกับว่าผู้ใช้ปลายทางสับสนหรือไม่เกี่ยวกับ SSMS Microsoft ไม่ได้พัฒนาเครื่องมือนี้สำหรับผู้ใช้ทั่วไป แต่สำหรับผู้ดูแลระบบฐานข้อมูลและ / หรือผู้ใช้ที่ต้องจัดการฐานข้อมูล ดังนั้นจะมีช่วงการเรียนรู้พร้อมเครื่องมือที่ให้มาและวิธีการใช้งาน กล่องโต้ตอบไฟล์เป็นวิธีการดังกล่าวใน SSMS ตั้งแต่ SSMS ออกมาพร้อมกับ SQL Server 2005 นี่คือเหตุผลที่คุณจะเห็นทั่วไปส่วนใหญ่ติดกับงบ T-SQL สำหรับการสำรองข้อมูลเรียกคืนหรือแนบฐานข้อมูลที่ใช้มันตั้งแต่นั้นมา .

การกำหนดค่าสิทธิ์ของระบบไฟล์กับ SQL Server คุณสามารถปฏิบัติตามคำแนะนำจาก MSDN ที่นี่

วิธีจัดการบัญชีบริการไม่ได้มาพร้อมกับหรือเนื่องจาก SQL Server เป็นเพราะการเปลี่ยนแปลงในระดับระบบปฏิบัติการ Window Server 2008 R2 เพิ่มเลเยอร์ความปลอดภัยอีกเล็กน้อยรอบบัญชีบริการ ข้อดีที่คุณมีคือบัญชีบริการสามารถเข้าถึงทรัพยากรในโดเมนได้ง่ายขึ้นแม้ว่าจะติดตั้งด้วยการตั้งค่าเริ่มต้น ลิงก์นี้จะให้รายละเอียดเกี่ยวกับวิธีจัดการสิทธิ์การใช้งานบัญชีบริการกับ SQL Server 2012 ส่วนที่ตัดตอนมาจากลิงค์ด้านล่างนี้ในบัญชีเสมือนที่ใช้โดยค่าเริ่มต้นใน SQL Server 2012 นอกจากนี้ยังมีลิงก์ที่ให้ไว้ในบทความ การอภิปรายเกี่ยวกับแนวคิดบัญชีบริการกับ Windows ที่นี่. มันมาจาก Window Server 2008 R2 แต่ฉันเชื่อว่ายังคงเป็นจริงใน Window Server 2012 และน่าจะเป็น Window Server 2012 R2

บัญชีเสมือน

บัญชีเสมือนใน Windows Server 2008 R2 และ Windows 7 ได้รับการจัดการบัญชีท้องถิ่นที่มีคุณสมบัติต่อไปนี้เพื่อให้การดูแลบริการง่ายขึ้น บัญชีเสมือนมีการจัดการโดยอัตโนมัติและบัญชีเสมือนสามารถเข้าถึงเครือข่ายในสภาพแวดล้อมของโดเมน หากมีการใช้ค่าเริ่มต้นสำหรับบัญชีบริการในระหว่างการติดตั้ง SQL Server บน Windows Server 2008 R2 หรือ Windows 7 บัญชีเสมือนที่ใช้ชื่ออินสแตนซ์ตามชื่อบริการจะถูกใช้ในรูปแบบ NT SERVICE \ บริการที่ทำงานเป็นบัญชีเสมือนเข้าถึงทรัพยากรเครือข่ายโดยใช้ข้อมูลประจำตัวของบัญชีคอมพิวเตอร์ในรูปแบบ \ $ เมื่อระบุบัญชีเสมือนเพื่อเริ่ม SQL Server ให้ปล่อยรหัสผ่านว่างไว้ หากบัญชีเสมือนไม่สามารถลงทะเบียน Service Principal Name (SPN) ให้ลงทะเบียน SPN ด้วยตนเอง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลงทะเบียน SPN ด้วยตนเองดูที่ลงทะเบียนชื่อบริการหลักสำหรับการเชื่อมต่อ Kerberos หมายเหตุ: บัญชีเสมือนไม่สามารถใช้สำหรับ SQL Server Failover Cluster อินสแตนซ์ได้เนื่องจากบัญชีเสมือนจะไม่มี SID เดียวกันในแต่ละโหนดของคลัสเตอร์

ตารางต่อไปนี้แสดงตัวอย่างชื่อบัญชีเสมือน

อินสแตนซ์เริ่มต้นของบริการโปรแกรมฐานข้อมูล: NT SERVICE \ MSSQLSERVER ชื่ออินสแตนซ์ของบริการโปรแกรมฐานข้อมูลชื่อ PAYROLL: NT SERVICE \ MSSQL $ PAYROLL บริการตัวแทนเซิร์ฟเวอร์ SQL $ PAYROLL บนอินสแตนซ์เริ่มต้นของ SQL Server: NT SERVICE \ SQLSERVERAGENT อินสแตนซ์ของ SQL Server ชื่อ PAYROLL: NT SERVICE \ SQLAGENT $ PAYROLL


3
โดยผู้ใช้ฉันหมายถึงหนึ่งในสิบของหมวดหมู่บางคนค่อนข้างมีความเป็นมืออาชีพและมีความสามารถทางเทคนิคในหลากหลายสาขา แต่ผู้ที่อาจไม่ใช่ DBA โดยส่วนตัวฉันคิดว่าแม้กระทั่ง DBA จะพบว่า UI บนเครื่องมือนี้สามารถปรับปรุงให้ดีขึ้นได้ ตลาดเครื่องมือของบุคคลที่สามที่แข็งแกร่งเป็นตัวบ่งชี้อีกอย่างหนึ่งว่า SSMS ในขณะที่ฟรีนั้นคุ้มค่ากับราคาอย่างสิ้นเชิง
Warren P

1
ในปี 2560 มันไม่ได้ดีไปกว่านี้แล้ว ดังนั้นคำตอบสั้น ๆ คือ "มันจะไม่ดีไปกว่านี้เรียนรู้วิธีการทำงาน แต่ UI ได้รับการออกแบบมาไม่ดี"
Warren P

2

หากต้องการดู / เข้าถึงไฟล์ในโฟลเดอร์อื่นให้NT SERVICE\MSSQLSERVERสิทธิ์ในโฟลเดอร์นั้น ดูคำตอบของฉันโพสต์ในไฟล์. bak ที่มองไม่เห็นในไดเรกทอรีใด ๆ ใน SSMSสำหรับภาพหน้าจอและขั้นตอนที่เกี่ยวข้อง (แตกต่างกันเล็กน้อยจากการเพิ่มสิทธิ์ผู้ใช้ / กลุ่มปกติในโฟลเดอร์)

หวังว่าจะช่วย!


1

ในความเป็นจริงถ้าคุณพยายามทำการกู้คืนผ่าน SSMS และคุณเข้าสู่ระบบผ่านการรับรองความถูกต้องของ Windows (!) มันจะเป็นบัญชี Windows ของคุณ (และไม่ใช่ "ทุกคนเช่นกัน") ที่ต้องการการอนุญาตไม่ใช่บริการ SQL Server บัญชีหวังว่าจะเป็นการขจัดความสับสนบัญชีบริการมีความต้องการอื่น ๆ ตัวอย่างเช่นถ้าคุณลงชื่อเข้าใช้ผ่านบัญชีที่ผ่านการรับรองความถูกต้องของ SQL - ระบบปฏิบัติการใดที่ควรขออนุญาต - ระบบบัญชี SQL ของมันจะเป็นแบบใด เฉพาะกรณีนี้ไม่ได้เปลี่ยนตั้งแต่ SQL Server 7.0 และอาจไม่ได้ก่อน :)


1
อย่าลืมเกี่ยวกับข้อมูลประจำตัว
Remus Rusanu

ฉันไม่แน่ใจว่าจะล้างความสับสน ... หากคุณเข้าสู่ระบบผ่าน WA บัญชี SQL Server ของคุณต้องได้รับอนุญาตในการกู้คืน (เท่าที่เกี่ยวข้องกับ SQL Server) แต่บัญชีบริการ SQL Server ต้องได้รับอนุญาตในการอ่าน บนระบบไฟล์เพื่อเปิด.bakไฟล์ (ซึ่งโดยทั่วไปจะไม่มีหากอยู่ในไดเรกทอรีผู้ใช้ของคุณเว้นแต่ได้รับอนุญาตอย่างชัดแจ้ง)
บรูโน่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.