Có một số cách mà bạn có thể hạn chế quyền truy cập vào cơ sở dữ liệu:
- Sử dụng Trình kích hoạt LOGON - nhưng chỉ tạm thời (bật trước khi nâng cấp và sau đó tắt nó). Tham khảo câu trả lời của tôi
ở đây để biết thêm chi tiết bao gồm cả một kịch bản.
- Bạn có thể tắt IIS trên máy chủ web để không có kết nối nào được thực hiện bằng ứng dụng. Điều này được gọi là "thời gian chết của Applicaiton"
Giữ cơ sở dữ liệu ở chế độ người dùng duy nhất bằng cách sử dụng (Lưu ý điều này sẽ có rủi ro vì nếu có bất kỳ kết nối nào khác với cơ sở dữ liệu thì bạn có thể sẽ chờ kết nối hoặc từ chối kết nối.)
alter database databasename
set single_user with rollback immediately
Bạn nên sử dụng Tùy chọn 2 như một bản nâng cấp an toàn và có kế hoạch trong cửa sổ bảo trì của bạn.
BIÊN TẬP:
Người dùng bị hạn chế - chỉ những người dùng có quyền dbo trên cơ sở dữ liệu được phép (ví dụ: db_owner, dbcreator, sysadmin). Điều này có nghĩa là nhiều người dùng vẫn có thể đăng nhập vào cơ sở dữ liệu, miễn là họ là DBO.
Một người dùng - chỉ một kết nối được phép, tức là đến trước, được phục vụ trước.
Do thực tế là Người dùng đơn sẽ đến trước, được phục vụ trước - sẽ có nhiều rủi ro hơn trong trường hợp có lỗi hoặc bằng cách nào đó các kết nối của bạn bị chấm dứt.
Khi giao dịch với Trình kích hoạt đăng nhập, như @AaronBertrand đã chỉ ra rằng nó sẽ không hoạt động cho các phiên hiện có, nhưng bạn có thể vượt qua điều đó bằng cách giết tất cả các phiên và sau đó kích hoạt để tất cả các kết nối đến mới phải đi qua Kích hoạt.
Tôi không thể nghĩ ra bất kỳ cách nào khác để hạn chế các kết nối đến cơ sở dữ liệu.