เรามีสถานการณ์ที่นักพัฒนาไม่ได้UPDATE
รับอนุญาตใด ๆแต่พวกเขาทำงานกับแอปพลิเคชันและดูสตริงการเชื่อมต่อ -> พวกเขารู้รหัสผ่านจากบัญชี SQL บางบัญชี (ตัวอย่างSQLLogin1
) ที่มีสิทธิ์อัปเดต การดำเนินงานของเราในปัจจุบันยังไม่สมบูรณ์แบบและบางครั้งข้อมูลการผลิตจะต้องมีการแก้ไข (ยังไม่มี GUI สำหรับสิ่งนั้น)
แทนที่จะติดต่อ DBA และขอให้เขาแก้ไขข้อมูลนักพัฒนาจะใช้บัญชี SQL (ไม่ถูกต้อง) SQLLogin1
(ที่มีสิทธิ์ในการปรับเปลี่ยนข้อมูล) และเชื่อมต่อกับ SQL Server Management Studio เพื่อแก้ไขข้อมูลเอง
DBA ไม่สามารถเปลี่ยนรหัสผ่านได้หากSQLLogin1
ไม่มี Developer จะเห็นสตริงการเชื่อมต่อใหม่และรหัสผ่านใหม่เนื่องจากสตริงการเชื่อมต่อแอปพลิเคชันที่ใช้SQLLogin1
นั้นดูแลโดยนักพัฒนา
คำถาม:
มีวิธีที่จะปฏิเสธการเข้าถึงการSQLLogin1
เข้าสู่ระบบ SQL แต่ถ้ามันเชื่อมต่อผ่าน SSMS หรือไม่?
ในเวลาเดียวกันหากSQLLogin1
เชื่อมต่อผ่าน.Net SqlClient Data Provider
( program_name
ในsys.dm_exec_sessions
) จะต้องได้รับอนุญาตให้เข้าสู่ระบบ
วิธีนี้เราไม่ต้องการให้นักพัฒนาเชื่อมต่อผ่าน SSMS โดยใช้SQLLogin1
ในขณะที่แอปพลิเคชันที่ใช้อยู่SQLLogin1
จะยังคงสามารถเชื่อมต่อได้