![](/img/trans.png)
[英]Cannot open database requested by the login. The login failed. Login failed for user 'NT AUTHORITY\SYSTEM'
[英]Login failed. Login failed for user 'NT AUTHORITY\SYSTEM'
我創建了一個 Windows 服務,我的服務依賴於 SQL 服務器服務。 首先,SQL啟動,然后我的服務在啟動PC或重新啟動PC時啟動。
這工作正常,但問題是 Windows 服務無法讀取數據庫文件,當我嘗試讀取數據庫時,拋出異常“無法打開用戶默認數據庫。登錄失敗。用戶‘NT AUTHORITY\\SYSTEM’登錄失敗” .
如果我啟動計算機並登錄,則它無法讀取數據庫,但是如果我已啟動計算機並等待幾秒鍾,然后登錄到窗口服務,它將讀取數據庫。
我敢打賭你的連接字符串中有這個:
Integrated Security=SSPI
或類似的東西。
現在,該服務正在運行的帳戶 ( NT AUTHORITY\\SYSTEM
) 嘗試連接到數據庫 - 並且不能,因為它沒有被授權這樣做。
你可以:
NT AUTHORITY\\SYSTEM
創建一個登錄名,並為其提供應用程序所需的必要權限要么:
您在 SQL Server 中創建一個特定的應用程序用戶帳戶(登錄到 SQL Server 和數據庫中的用戶)並將您的連接字符串更改為:
User ID=(your app account);pwd=YourPassword
轉到數據庫下的安全選項卡。
在security
,單擊以展開Users
選項卡。
查找天氣NT AUTHORITY\\SYSTEM
存在。
如果沒有,右鍵單擊用戶,單擊新用戶
在新用戶窗口中, general
選項卡將user type
更改為windows user 。
選擇用戶名,NT AUTHORITY\\SYSTEM 你必須在Advanced tab, find now, and select system
找到它Advanced tab, find now, and select system
。
同樣對於登錄名, browse and find NT AUTHORITY\\SYSTEM
。
在左側的成員資格選項卡中,選擇所有必需的框並單擊確定。
可能這會解決您的問題。 希望這可以幫助。
我從連接字符串中刪除了Trusted_Connection=yes
並且它運行良好。
我實際上只是更改了 SQL Server 中 NT AUTHORITY\\SYSTEM 用戶的權限,這對我有用。
你可以在連接字符串上添加這個
堅持安全信息=真
簡單的解決方案是檢查您的web.config
文件並確保其中之一是數據庫連接字符串的一部分:
Trusted Connection=false
要么
Integrated Security=True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.