Bạn đang sử dụng xác thực Windows để vào máy chủ, vì vậy nó sử dụng quyền truy cập tài khoản Windows từ máy khách để xác thực quyền truy cập / quyền. Khi đang trong quá trình phát triển, "máy khách" thực sự là máy chủ phát triển VS, nhưng khi bạn triển khai lên máy chủ web thực, "máy khách" chạy như một tài khoản khác, tài khoản được sử dụng để khởi động dịch vụ của nó, KHÔNG phải của bạn.
Thường thì Máy chủ SQL được định cấu hình khi cài đặt để cho phép bạn sysadmin
truy cập, nhưng hầu như không có gì khác đối với người dùng khác, đó là lý do tại sao bạn bị từ chối truy cập. Một tùy chọn sẽ là sử dụng xác thực SQL với người dùng / mật khẩu. Về mặt bảo mật, đây sẽ là lựa chọn tốt nhất nếu cùng một máy chủ web chạy nhiều trang web (vì chúng có thể bị tách biệt với dữ liệu của nhau).
Nếu bạn thực sự muốn sử dụng xác thực Windows, giải pháp thực sự sẽ là cấp quyền cho tài khoản tích hợp sẵn NT AUTHORITY\NETWORK SERVICE
tại SSMS:
CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS WITH DEFAULT_DATABASE=[RESv5]
GO
USE [RESv5]
GO
CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE]
GO
ALTER ROLE [db_owner] ADD MEMBER [NT AUTHORITY\NETWORK SERVICE]
GO