ทำไมแอปพลิเคชันไม่ควรใช้บัญชี sa


21

คำถามแรกของฉันโปรดเป็นคนอ่อนโยน ฉันเข้าใจว่าบัญชี sa ช่วยให้สามารถควบคุม SQL Server และฐานข้อมูลผู้ใช้สิทธิ์ทั้งหมดได้อย่างสมบูรณ์

ฉันเชื่ออย่างแน่นอนว่าแอปพลิเคชันไม่ควรใช้รหัสผ่าน sa หากไม่มีเหตุผลที่สมบูรณ์แบบนักธุรกิจให้ความสำคัญ คำตอบสำหรับคำถามนี้รวมถึงเหตุผลมากมายของฉันสำหรับการสนทนาที่เน้นด้านไอที

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

เมื่อฉันสอบถามเรื่องนี้และทีมเซิร์ฟเวอร์ได้พูดคุยกับผู้ขายว่าพวกเขาได้รับคำตอบที่น่ากังวลว่า และจากนั้น 'เราสามารถดูรหัสผ่าน' scrambling ffs scrambling

ฉันรู้ว่ามีวิธีและวิธีการ จำกัด การเข้าถึงไฟล์ แต่มันก็เป็นเพียงจุดอ่อนในการรักษาความปลอดภัยในความคิดของฉัน

ยังไงก็ตามคำถามของฉันคือใครบางคนสามารถชี้ให้ฉันที่เอกสารบางอย่างที่ฉันสามารถใช้เพื่ออธิบายให้กับธุรกิจด้วยเหตุผลว่าทำไมสิ่งนี้เป็นสิ่งที่ไม่ดีและไม่ควรใหญ่ไม่มี ฉันทำงานในสาขาที่หมายความว่าฉันต้องใช้ความปลอดภัยอย่างจริงจังและพยายามดิ้นรนเพื่อให้ธุรกิจเข้าใจและท้ายที่สุดอาจได้รับการจัดอันดับต่อไป แต่ฉันต้องลอง


1
saหรือสมาชิกใด ๆ ของsysadminรวมถึงการเข้าสู่ระบบ windows?
Remus Rusanu

sa และ sa เท่านั้น :-(
SQLDBAWithABeard

1
คุณต้องได้รับข้อมูลเพิ่มเติมจากผู้ขาย โดยเฉพาะสิ่งที่พวกเขาทำสิ่งที่ต้องการsaอย่างชัดเจน
Aaron Bertrand

11
บ่อยครั้งที่ผู้ขายบอกว่าพวกเขาต้องลงชื่อเข้าใช้อย่างชัดเจนนั่นหมายความว่าพวกเขาไม่ได้ทดสอบแอปของพวกเขาด้วยวิธีอื่น (หรือทำครั้งเดียวและล้มลงด้วยข้อผิดพลาดที่พวกเขาไม่ได้พิจารณาก่อนตัดสินใจ "เราจะติด ด้วย sa ") ซึ่งไม่ใช่สิ่งที่จะเติมความมั่นใจให้ฉัน อย่าใช้วิธีนี้กับผู้ขายโดยตรงการสอบถามทางการทูตมากขึ้นจะได้ผลลัพธ์ที่ดีกว่า!
David Spillett

เดวิดได้อย่างถูกต้องฉันเชื่อว่าจากการติดต่อสั้น ๆ ของฉันกับผู้ขาย
SQLDBAWABABARDD

คำตอบ:


21

มันขึ้นอยู่กับธุรกิจของคุณ แต่สิ่งที่สำคัญในกรณีส่วนใหญ่คือการทำให้แน่ใจว่าจะไม่ได้เห็นเป็นปัญหาไอที มันเป็นปัญหาด้านความปลอดภัยและในขณะที่ทั้งสองคนซ้อนทับกันอย่างหนาแน่นธุรกิจ peopel มีแนวโน้มที่จะฟังถ้าคุณพูดว่า "ความปลอดภัย" กว่าถ้าคุณเป็นเพียง "ครางเกี่ยวกับสิ่งไอทีทั่วไป"

คุณทำงานกับลูกค้าที่มีข้อกำหนดด้านความปลอดภัยหรือไม่? นี่เป็นจุดเริ่มต้นที่ดี หากเราเรียกใช้แอปที่มีการเข้าถึงระดับ sa หรือเพียงแค่แอปที่ไม่ปลอดภัยอย่างถูกต้องข้อมูลประจำตัวของมันแม้ว่าจะไม่ได้ใช้การเข้าถึงที่มีสิทธิ์ (เราต้องการ Windows Integrated มากกว่าผู้ใช้ที่เก็บไว้ / ผ่านที่เป็นไปได้) การตรวจสอบบัญชีการตรวจสอบดังกล่าวจะล้มเหลวและเราอาจเสี่ยงต่อการสูญเสียลูกค้าและ / หรือต้องให้เงินคืนแก่กลุ่มลูกค้าของเรา (องค์กรธนาคารในกรณีของผลิตภัณฑ์ที่ฉันทำงานส่วนใหญ่ส่วนอื่น ๆ ของกลุ่มจัดการกับตำรวจและสุขภาพ เจ้าหน้าที่รักษาความปลอดภัยและอื่น ๆ ) ความปลอดภัยเป็นส่วนหนึ่งของข้อเสนอของเราว่าเหมาะสมสำหรับวัตถุประสงค์ นักธุรกิจจะเข้าใจถึงความรุนแรงของภัยคุกคามที่อาจเกิดขึ้นแม้ว่าโดยปกติแล้วพวกเขาจะจ่ายเงินไม่มากไปกว่าการให้บริการปากต่อปากกับคำแนะนำด้านไอที

แม้แต่การเพิกเฉยต่อข้อกำหนดของลูกค้าหากคุณพยายามที่จะปฏิบัติตามมาตรฐานความปลอดภัยมาตรฐานอุตสาหกรรมที่หลากหลายดังนั้นการตรวจสอบแอพพลิเคชั่นประเภทนี้อีกครั้งจะทำให้คุณล้มเหลวในการตรวจสอบเนื่องจากยังห่างไกลจากแนวปฏิบัติที่ดีที่สุด ในรายการ "ไม่ควรทำ" ให้ความกระจ่างแก่ผู้มีอำนาจตัดสินใจทางธุรกิจของคุณว่าการรักษาความปลอดภัยเป็นส่วนสำคัญของแอปพลิเคชันและความจริงที่ว่าผู้ขายรายนี้ดูเหมือนจะไม่ได้ตระหนักถึง (หรืออย่างน้อยก็เกี่ยวข้องอย่างเหมาะสม) ทำให้คุณมีข้อสงสัยว่า การจัดการกับ: การรู้เกี่ยวกับการรักษาความปลอดภัยฐานข้อมูลที่ดีที่สุดคือ (ส่วนที่ควรจะเป็น) ส่วนหนึ่งของงานของพวกเขา

ชี้ให้เห็นว่าคุณ (ผู้ซื้อ) ควรกำหนดข้อกำหนดด้านความปลอดภัยที่สมเหตุสมผลให้กับผู้ขายไม่ใช่วิธีอื่น มันเป็นข้อมูลของคุณดังนั้นพวกเขาจึงไม่มีคุณสมบัติที่จะระบุสิ่งที่ถือว่าปลอดภัยเพียงพอ


ฮ้า ไม่ทราบว่าใส่เพิ่มความคิดเห็นมันปลอดภัยที่จะบอกว่าที่ฉันทำงานความปลอดภัยของทุกประเภทเป็นข้อกังวลสำคัญพิจารณาเหมือนตำรวจถ้าคุณชอบ อย่างไรก็ตามผู้มีอำนาจตัดสินใจไม่เห็นว่าเป็นเรื่องที่น่ากังวล การตรวจสอบเป็นจุดเริ่มต้นที่ดีและฉันจะตรวจสอบต่อไป
SQLDBAWithABeard

+1 เฉพาะอย่างยิ่งผมชอบความคิดเห็นที่ว่านี้คือการรักษาความปลอดภัยปัญหาไม่ได้มันปัญหา
Kenneth Fisher

2
ฉันลังเลที่จะซื้ออะไรจากกลุ่มคนที่คิดว่ามันโอเคที่จะทิ้งกุญแจไปยังอาณาจักรที่อยู่ในไฟล์ปรับแต่งในรูปแบบข้อความธรรมดา ฉันรู้ว่าไม่ใช่การโทรของคุณ แต่ถ้าคุณสามารถทำให้ The Deciders เห็นว่าอะไรคือความคิดที่แย่มากและสิ่งที่พูดเกี่ยวกับผู้ขายนั่นอาจช่วยคุณได้
mdoyle

Mdoyle - ปัญหาคือเมื่อฉันเรียนรู้เพิ่มเติมเกี่ยวกับมันคือ Deciders เห็นสิ่งต่าง ๆ ในสัญญาณปอนด์และเนื่องจากนี่เป็นการอัปเกรดจากรุ่นโบราณมันราคาถูก ฉันคิดว่าฉันเป็นผู้ชนะในการต่อสู้ขอบคุณคนดี ๆ ที่นี่ ฉันล่าช้าการทดสอบส่วนของเว็บเซิร์ฟเวอร์ของสิ่งนี้อย่างน้อยในปัจจุบัน
SQLDBAWABABARDD

20

ไม่จำเป็นต้องมีแอปพลิเคชันเพื่อเข้าถึง SA (เว้นแต่วัตถุประสงค์เพียงอย่างเดียวคือการจัดการฐานข้อมูลบางประเภท)

เป็นกฎทั่วไปที่จะไม่ให้สิทธิ์การเข้าสู่ระบบใด ๆ (แอปพลิเคชันหรือส่วนบุคคล) มากกว่าที่ธุรกิจต้องการให้มีการเข้าสู่ระบบนั้น

ไม่มีแอปพลิเคชันที่ปลอดภัยอย่างสมบูรณ์ ส่วนใหญ่มีช่องโหว่ SQL Injection หรือ XSS บางประเภท หากผู้บุกรุกเข้ามาดำเนินการตามคำสั่งของเขา / เธอเลือกและมีการเข้าถึงแบบ 'SA' มีหลายสิ่งหลายอย่างที่อาจเกิดขึ้นกับข้อมูลของคุณที่สามารถฆ่าธุรกิจได้ทันที (โดยเฉพาะอย่างยิ่งถ้าข้อมูลจำเป็นต้องเชื่อถือได้เนื่องจากมีการใช้งานโดยการบังคับใช้กฎหมาย) ถามผู้ถือหุ้นว่าพวกเขาจะต้องทำอะไรถ้ามีใครสามารถเปลี่ยนแปลงโดยเจตนาแม้แต่บันทึกเดียวและข้อมูลนั้นรั่วไหลออกมา

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

ผู้ขายกล่าวว่าพวกเขาสามารถช่วงชิงรหัสผ่าน นั่นคือ BS แอปพลิเคชันจำเป็นต้องเข้าถึงรหัสผ่านใน cleartext เพื่อใช้งานดังนั้นกุญแจสำคัญในการถอดรหัสรหัสผ่านจะถูกจัดเก็บไว้โดยไม่มีการถอดรหัสขวาถัดจากรหัส นอกจากนี้ดังที่กล่าวไว้ก่อนหน้าปัญหาที่แท้จริงไม่ใช่คนที่ค้นหารหัสผ่านนี้ คนที่ใช้ระบบนี้ผ่านทางช่องโหว่จะสามารถเข้าถึงฐานข้อมูลทั้งหมดของคุณได้อย่างเต็มที่โดยไม่ต้องเห็นรหัสผ่าน

สาเหตุที่เป็นไปได้มากที่สุดสำหรับ SA ที่ต้องการคือแอพพลิเคชั่นต้องมีปฏิสัมพันธ์กับ SQL Agent อย่างน้อยนั่นเป็นหนึ่งในฟังก์ชั่นที่ยากกว่าในการนำมาใช้อย่างถูกต้องและคนส่วนใหญ่ใช้เส้นทาง "ใช้ SA" เพื่อหลีกเลี่ยง การร้องขอ 'SA' อาจเกิดจากผู้ขายไม่ทราบวิธีตรวจสอบสิทธิ์การดูแลระบบ

มีวิธีแก้ไขสองวิธีที่คุณสามารถลองได้:

  1. เปลี่ยนชื่อ SA (วิธีปฏิบัติที่ดีที่สุดด้านความปลอดภัย) และสร้างบัญชีใหม่ที่ชื่อว่า 'SA' ด้วยสิทธิ์ที่ จำกัด (ไม่เคยลองสิ่งนี้ แต่ควรใช้งานได้)

  2. อย่าติดตั้งซอฟต์แวร์ คุณในฐานะมืออาชีพไม่สามารถรับผิดชอบต่อการกระทำนั้นดังนั้นคุณไม่ควรติดตั้ง เพื่อให้คุณเปรียบเทียบให้ถามช่างประปาเพื่อเรียกใช้สายแก๊สโดยตรงผ่านเตาผิงแทนที่จะอยู่ข้างๆเพื่อประหยัดท่อ / เงิน คุณอาจจะหัวเราะที่ภาพนี้ แต่ฉันเชื่อว่าเป็นการเปรียบเทียบที่เหมาะสม - ซอฟต์แวร์นี้จะระเบิดไม่ช้าก็เร็ว และเมื่อมันอาจจะทำให้ธุรกิจตกต่ำเช่นกัน

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


4
+1 เพียงสำหรับ"สายแก๊สโดยตรงผ่านเตาผิง"เปรียบเทียบ
ypercubeᵀᴹ

ใน SQL Server บัญชี sa ไม่สามารถเปลี่ยนชื่อได้ อย่างไรก็ตามสามารถปิดใช้งานได้
Greenstone Walker

1
@GreenstoneWalker: alter login sa with name = [as];แน่ใจว่ามันสามารถ:
Remus Rusanu

รีมัสที่จะให้บริการฉันที่ถูกต้องสำหรับการพึ่งพา SSMS และสำหรับการพึ่งพาความรู้เก่า ก่อนหน้า SQL Server 2005 จะไม่สามารถเปลี่ยนชื่อได้ SSMS ดูเหมือนจะไม่สามารถเปลี่ยนชื่อ sa login ได้ แต่ T-SQL ที่คุณโพสต์นั้นถูกต้องอย่างแน่นอน
Greenstone Walker

12

ฉันเห็นการโจมตีสองบรรทัดนี้

  • การปฏิบัติตาม มีเกณฑ์การปฏิบัติตามข้อบังคับที่มีผลบังคับใช้ในร้านของคุณหรือไม่? ค้นหาข้อความอย่างระมัดระวังและดูว่าคุณพบสิ่งใดที่ไม่สอดคล้องกับข้อกำหนดของแอปพลิเคชัน หากคุณพบสิ่งใดก็ตามที่ป้องกันการsaใช้งานโดยแอปพลิเคชันคุณจะมีเคสกันกระสุนกันแน่นเพราะแอพพลิเคชั่นจะทำให้ธุรกิจของคุณต้องรับผิด ฯลฯ เป็นต้น

  • ผู้ดูแลระบบการเข้าถึง ตรวจสอบให้แน่ใจว่าคุณแสดงให้เห็นอย่างชัดเจนในกรณีที่แอปพลิเคชันที่ต้องการsaการเข้าถึงมีผลให้saสามารถเข้าถึงผู้ใช้องค์กรทั้งหมดที่มีสิทธิ์ผู้ดูแลระบบในเวิร์กสเตชันที่ติดตั้งแอปพลิเคชัน ไม่มีวิธีใดที่จะซ่อนsaรหัสผ่านจากผู้ดูแลระบบในพื้นที่ที่แอปพลิเคชันทำงานนั่นคือความจริงและไม่มี 'scrambling' จำนวนหนึ่งที่สามารถป้องกันสิ่งนี้ได้ ไม่มีความน่าเชื่อถือในระดับรากที่ผู้ดูแลระบบในพื้นที่ไม่สามารถทำได้หากเขาต้องการ ทำให้ชัดเจนว่าการมีแอปพลิเคชันที่ต้องการsaเท่ากับการมอบsaสิทธิพิเศษให้แก่ผู้ใช้ทั้งหมดที่เรียกใช้แอปพลิเคชัน อธิบายความหมายของสิ่งที่ผู้ใช้สามารถทำได้อย่างมีประสิทธิภาพ:

    • ความสามารถในการอ่านข้อมูลใด ๆในเซิร์ฟเวอร์ไม่เพียง แต่จากแอปพลิเคชันนี้ แต่จากฐานข้อมูลอื่น ๆ ที่โฮสต์บนเซิร์ฟเวอร์นั้น
    • ความสามารถในการปรับเปลี่ยนข้อมูลใด ๆบนเซิร์ฟเวอร์อีกครั้งจากฐานข้อมูลอื่น ๆ บนเซิร์ฟเวอร์เดียวกัน
    • ความสามารถในการลบร่องรอยของการกระทำของเขาหลังจากทำการปรับเปลี่ยนใด ๆ
    • ความสามารถในการเปลี่ยนแปลงการตรวจสอบและประวัติใด ๆ เพื่อให้ปรากฏว่ามีการกระทำบางอย่างที่กระทำโดยผู้ใช้รายอื่น
    • ความสามารถในการใช้ข้อมูลประจำตัวของ SQL Server เพื่อเพิ่มการโจมตี ทรัพยากรอื่น ๆที่ไว้วางใจเซิร์ฟเวอร์นี้ สิ่งนี้สามารถบ่งบอกถึง SQL Server อื่น ๆ แต่ทรัพยากรอื่น ๆ เช่นกันรวมถึง แต่ไม่ จำกัด เฉพาะไฟล์ที่ใช้ร่วมกันแลกเปลี่ยนเซิร์ฟเวอร์ ฯลฯ เนื่องจาก SQL Server สามารถใช้งานได้เหมือนก้าวที่สำคัญ

ทำให้ผู้มีอำนาจตัดสินใจที่ยอมรับแอปพลิเคชั่นนี้แสดงถึงการมอบความไว้วางใจให้พนักงานทุกคนที่มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบสำหรับเวิร์กสเตชันที่เรียกใช้แอปพลิเคชันด้วยสิทธิ์ทั้งหมดที่กล่าวถึงข้างต้น ผู้ขายจะพยายามปกป้องจุดยืนของตนโดยเรียกใช้saรหัสผ่านบางอย่างหรือ 'เข้ารหัส' รหัสผ่านสำหรับแอปพลิเคชัน สิ่งนี้ไม่เก็บน้ำ ไม่มีรูปแบบการเข้ารหัสที่สามารถทนต่อการโจมตีจากผู้ดูแลระบบได้ และทำให้ชัดเจนว่าจำนวนทักษะทางเทคนิคที่จำเป็นในการค้นหารหัสผ่าน 'ที่ซ่อนอยู่' ในพื้นที่นั้นไม่เกี่ยวข้องอย่างสมบูรณ์ พนักงานจะไม่ทำด้วยตัวเองคนใดคนหนึ่งจะใช้ google เพื่อค้นหาสคริปต์ที่ใช้งานง่าย


ขอบคุณรีมัส นั่นคือคำตอบที่ฉันต้องการอย่างแม่นยำ ฉันชนะการต่อสู้อย่างช้า ๆ และนี่คือการช่วยเหลือทั้งหมด
SQLDBA เมื่อ

7

ก่อนอื่นรหัสผ่าน sa เก็บข้อความธรรมดาหรือไม่ คุณควรลงคะแนนด้วยกระเป๋าเงินของคุณ ใครก็ตามที่คิดว่าเป็นที่ยอมรับจะต้องถูกเลิกกิจการ

นี่คือ anology ที่อาจช่วยให้คุณอธิบายปัญหา: พนักงาน Alice ต้องเข้าถึงชั้นแรก คุณให้คีย์หลักแก่เธอทั้งตึกหรือแค่เป็นกุญแจสำหรับชั้นแรก? คำตอบ: คุณมอบกุญแจให้เธอที่ชั้นแรก ทำไม? เพราะมันช่วยลดโอกาสของการเกิดอุบัติเหตุโดยเจตนาหรือความเสียหายโดยเจตนา ถ้าอลิซไม่สามารถไปถึงห้องเซิร์ฟเวอร์ชั้นสองได้ตั้งแต่แรกเธอจะไม่ทำอะไรที่แย่ในนั้น

มันเป็นหลักการของสิทธิอย่างน้อย

สำหรับสาเหตุที่แอปพลิเคชันจำเป็นต้องใช้บัญชี sa นั่นคือคำถามที่ PerfMon หรือ Extended Events ควรตอบได้ สร้างการติดตาม PerfMon โดยใช้เทมเพลต T-SQL ซึ่งอาจกรองตามชื่อแอปพลิเคชัน

จากด้านบนของหัวของฉันนี่คือข้อโต้แย้งอีกข้อหนึ่งเกี่ยวกับการใช้ sa: การใช้บัญชี sa ต้องใช้บริการ SQL Server ในโหมดการตรวจสอบสิทธิ์แบบผสม การตรวจสอบสิทธิ์ด้วย Windows เท่านั้นจะดีกว่าเพราะเราสามารถใช้ฟีเจอร์ที่ปลอดภัยทั้งหมดของ Kerberos


4

จากมุมมองทางเทคนิคไม่มีเหตุผลที่แอปพลิเคชันจะต้องมีสิทธิ์ SA สิ่งที่อาจเกิดขึ้นคือผู้พัฒนาแอปพลิเคชั่นอาจตรวจสอบเพื่อดูว่าการเข้าสู่ระบบของพวกเขามีสิทธิ์ดูแลระบบหรือไม่หากไม่ใช่ก็เพียงแค่โยนข้อความแสดงข้อผิดพลาด วิธีนี้พวกเขาสามารถอ้างสิทธิ์ได้ว่าแอปพลิเคชันต้องการสิทธิ์ SA

หากคุณต้องมีแอปพลิเคชันนี้ฉันจะเรียกใช้ในอินสแตนซ์แยกต่างหากที่ไม่มีอะไรอยู่ในนั้น


ฉันคิดว่ามันอาจตรวจสอบว่ามันทำงานเป็น sa แล้วล้มเหลวเพราะมันจะไม่ทำงานภายใต้บัญชีที่มี sysadmin
SQLDBAWithABeard

1
จากนั้นตรวจสอบหมายเลขผู้ใช้เฉพาะ พวกเขาเป็นนักพัฒนาที่ทำสิ่งนี้เพราะมันทำงานร่วมกับ sa และพวกเขาไม่ต้องการที่จะดูว่าพวกเขาต้องการสิทธิ์อะไรจริง ๆ ดังนั้นนี่เป็นวิธีที่ง่ายที่สุดในการป้องกันข้อผิดพลาดอื่น ๆ มันเป็นวิธีที่ไร้สาระอย่างสมบูรณ์และผู้ขายควรจะตีรอบในการทำมัน
mrdenny

4

บางทีผู้ขายของคุณกำลังร้องขอ / ต้องการ "sa" เพราะบางแห่งในแอปพลิเคชันของพวกเขากำลังใช้ XP_CMDSHELL (อย่าให้ฉันเริ่มต้นความเสียหายที่เป็นไปได้ด้วยการเข้าถึง XP_CMDSHELL โดยไม่ จำกัด เพียงเพื่อบอกว่านี่อาจเปิดขึ้นไม่เพียง แต่ข้อมูลของคุณ แต่เป็นเครื่องโฮสต์และอาจเป็นอย่างอื่นในเครือข่ายของคุณเพื่อการเข้าถึงแบบผู้ดูแลระบบ)

หากมีความต้องการที่ถูกกฎหมายคุณสามารถให้สิทธิ์การเข้าถึงที่ จำกัด ผ่านทางบัญชีพร็อกซี ดูตัวอย่าง BOL: http://msdn.microsoft.com/en-us/library/ms175046.aspx


4

ไม่ควรใช้แอปพลิเคชันบัญชี SA และรหัสผ่าน

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

ดังนั้นฉันจะยืนยันว่าจำเป็นต้องมีบัญชี SA สำหรับการติดตั้งหรือการทำงานของซอฟต์แวร์การจัดการบริการไอทีนี้หรือไม่

หากการติดตั้ง: สร้างบัญชี 'sa' ชั่วคราว - ทำการติดตั้ง - และลบบัญชี

หากการดำเนินการ: หลีกเลี่ยงซอฟต์แวร์เช่นภัยพิบัติ (หรือตั้งค่าเซิร์ฟเวอร์ SQL แบบสแตนด์อโลนที่จะเก็บฐานข้อมูลเดียวเท่านั้น)


+1 สำหรับอินสแตนซ์เซิร์ฟเวอร์ SQL เฉพาะ นั่นจะเป็นทางเลือกสุดท้ายที่ดีในการอนุญาต sa บนเซิร์ฟเวอร์จริง
ด่าน

0

พารามิเตอร์ความปลอดภัยของระบบ SQL Server ที่เป็นค่าเริ่มต้นใด ๆ ควรได้รับการแก้ไข ขอแนะนำไม่ให้ใช้โหมดผสม (เปิดใช้งานการตรวจสอบสิทธิ์ Windows และ SQL Server) สำหรับการตรวจสอบความถูกต้อง ให้เปลี่ยนไปใช้การรับรองความถูกต้องของ Windows เท่านั้น - ซึ่งจะบังคับใช้นโยบายรหัสผ่าน Windows - การตรวจสอบความยาวของรหัสผ่านระยะเวลาชีวิตและประวัติ คุณลักษณะของนโยบายรหัสผ่าน Windows ที่ทำให้แตกต่างจากการรับรองความถูกต้องของ SQL Server คือการล็อคอินเข้าสู่ระบบ - หลังจากพยายามล็อกออนล้มเหลวหลายครั้งติดต่อกันล็อกอินจะล็อคและใช้ไม่ได้สำหรับการใช้งานต่อไป

ในทางกลับกันการรับรองความถูกต้องของ SQL Server ไม่ได้ให้วิธีการใด ๆ ในการตรวจสอบความพยายามโจมตีแบบ brute-force และสิ่งที่แย่กว่านั้นคือ SQL Server นั้นยังได้รับการปรับให้เหมาะสมที่สุดสำหรับการจัดการความพยายามในการเข้าสู่ระบบอย่างรวดเร็ว ดังนั้นหากการรับรองความถูกต้องของเซิร์ฟเวอร์ SQL เป็นสิ่งที่จำเป็นในระบบ SQL Server เฉพาะขอแนะนำให้ปิดการใช้งานการเข้าสู่ระบบ SA


1
มันเป็นอุบัติเหตุหรือโดยเจตนา - เพื่อตอบ 2 คำถามด้วยคำตอบที่แน่นอนเหมือนกันหรือไม่?
ypercubeᵀᴹ

ขอบคุณสำหรับความคิดเห็น แค่คิดว่าคำอธิบายสามารถช่วยได้ในทั้งสองกรณี
Ivan Stankovic

น่าสนใจ แต่ไม่เป็นประโยชน์อย่างยิ่งต่อ OP
ด่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.