วิธีปฏิเสธการเข้าถึง SQL Server เพื่อเข้าสู่ระบบบางอย่างผ่าน SSMS แต่อนุญาตผ่าน. Net SqlClient Data Provider
เรามีสถานการณ์ที่นักพัฒนาไม่ได้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จะยังคงสามารถเชื่อมต่อได้