2012-04-03 59 views
4

好了,所以我有一個連接到MSSQL數據庫的腳本,我需要爲我們已經完成了服務運行,但是當我運行它作爲一項服務將覆蓋我使用廣告計算機帳戶連接到數據庫時所輸入的憑據。登錄失敗的「域計算機名」 pyodbc與py2exe

它運行完美時,我自己運行而不是作爲服務。

我的連接字符串是:

'DRIVER={SQL Server};SERVER=MyServer;DATABASE=MyDB;UID=DOMAIN\myusername;PWD=A;Trusted_Connection=True'

的錯誤是:

Error: ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'DOMAIN\COMPUTERNAME')

什麼建議嗎?

+0

什麼是你的ODBC連接字符串?您在事件日誌中看到哪些錯誤消息? – 2012-04-03 20:02:01

+1

'DRIVER = {SQL Server}; SERVER = SERVERNAME; DATABASE = DBName; UID = USERNAME; PWD = PASSWORD; Trusted_Connection = True' – ChrisMcKenzie 2012-04-03 20:06:29

+0

用戶登錄失敗'CORE \\ DEEPTHOUGHT $ – ChrisMcKenzie 2012-04-03 20:07:03

回答

1

以下連接字符串將使用Windows身份驗證,使用運行服務的帳戶對數據庫進行身份驗證。服務帳戶更改爲一個有數據庫訪問:

'DRIVER={SQL Server};SERVER=SERVERNAME;DATABASE=DBName;Trusted_Connection=yes'

要更改服務帳戶:

  • 開始 - >運行 - > SERVICES.MSC
  • 右鍵單擊服務 - >屬性
  • 登錄選項卡
  • OK /應用保存更改

Screenshot of window to change service account

+1

在提問中提到的'overrides my credentials'。他想在工作中使用'RunAs'憑證。這意味着他想要使用可信連接。 – 2012-04-03 20:16:57

+0

@AnthonyKong我的解讀是,他想用'UID'和'PWD'值...無論哪種方式,我的答案是更新,包括身份驗證這兩種方法。 – Bryan 2012-04-03 20:20:11

+0

安東尼是正確的非常感謝! – ChrisMcKenzie 2012-04-03 20:24:08

2

在上一個項目中,我發現DRIVER={SQL Server};SERVER=SERVERNAME;DATABASE=DBName足以在可信模式下啓動數據庫連接。

如果仍然不能正常工作,它可能是要麼

1)MSSQL服務器上的賬戶DEEPTHOUGHT未正確設置。

2)在服務的runAs沒有設置正確(爲什麼錯誤信息中提到了「計算機名」,而不是「DEEPTHOUGHT」?)