2015-10-23 28 views
-1

我將創建一個腳本來執行大量的SQL文件。我選擇使用SQLCMD而不是ADODB,因爲它可以快速提供日誌信息,而且我們正在執行T-SQL。在將其寫入腳本之前,我正在測試SQLCMD.exe 如何在Windows身份驗證(-E)中使用SQLCMD,但沒有提升權限

使用SQLCMD.exe連接到數據庫,我使用-E進行Windows身份驗證。這意味着我需要使用我的網絡帳戶,該帳戶在任何給定的計算機上都沒有提升的訪問權限。然而,SQLCMD.exe需要以執行查詢提升權限,否則我收到以下錯誤:

Sqlcmd: Error: Error occurred while opening or operating on file (Reason: Access is denied).

運行以下命令後:

 
sqlcmd.exe -S <SQLSERVER,PORT> -d <DATABASE> -i scriptfile.sql -o scriptfile.log -E 

我怎樣才能利用SQLCMD.exe與提升本地權限(管理員),但使用Windows身份驗證連接到服務器(使用非管理員帳戶)?我不希望更改SQLCMD.exe的任何權限,因爲可能有多個人使用此腳本,我並不熱衷於通知他們這個先前的指令。

+0

你試過的完整命令是什麼? –

+1

我認爲您看到的錯誤與您正在引用的腳本文件或日誌文件有關。不是你是否使用Windows身份驗證。你能發佈完整的命令,讓我們更好地瞭解發生了什麼? – CDC

+0

當然這裏是完整的命令 sqlcmd.exe -S -d -i scriptfile.sql -o scriptfile.log -E –

回答

1

從測試時運行命令的路徑是什麼?運行該命令的非管理員是否有權從scriptfile.sql讀取數據並訪問寫入scriptfile.log?大多數命令通常默認爲當前工作目錄。

+0

並非我無法訪問SQLCMD。正如Bacon位所述,我試圖執行非管理員用戶無法訪問的腳本。 –

相關問題