簡體   English   中英

登錄失敗。 用戶“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 ) 嘗試連接到數據庫 - 並且不能,因為它沒有被授權這樣做。

你可以:

  • 在 SQL Server 中為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 用戶的權限,這對我有用。

你可以在連接字符串上添加這個

堅持安全信息=真

  1. 打開 SQL 管理工作室
  2. 連接到 SQL Server 實例
  3. 導航到安全
  4. 打開登錄文件夾
  5. 雙擊 NT AUTHORITY\\SYSTEM 圖標
  6. 單擊“選擇頁面”窗格中的“服務器角色”圖標
  7. 勾選服務器角色中的 sysadmin 復選框:窗格

簡單的解決方案是檢查您的web.config文件並確保其中之一是數據庫連接字符串的一部分:

Trusted Connection=false

要么

Integrated Security=True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM