2012-11-09 55 views
0

在我的C#.NET應用程序中,我使用Microsoft.SqlServer.Management.Server.ConnectionContext.ExecuteNonQuery()來針對SQL Server數據庫運行腳本。SQL腳本USE語句 - C#

我想知道是否有辦法確保腳本不包含「USE」語句。

我必須確保腳本針對特定數據庫運行,並且它在執行時不會更改數據庫。

謝謝!

+2

這是一個奇怪的請求。你是否從遠程源執行任意SQL腳本? – asawyer

+0

當然有辦法。但沒有實現。我建議你編寫一個解析器來檢查這種情況。我認爲正則表達式可以用於此 – KroaX

+0

腳本是一個文件嗎? – LukeHennerley

回答

5

必須確保腳本針對特定數據庫運行,並且它在執行時不會更改數據庫。

你控制sql server的方式是通過安全。您只能在只有讀取權限的sql server中創建一個用戶帳戶,並且只能爲該數據庫創建一個用戶帳戶,然後確保在連接到服務器時使用該帳戶。如果這意味着在這裏使用不同的連接而不是在你的應用中的其他位置,那就這樣吧。

+0

這絕對是要走的路。讓服務器通過設置正確的權限來擔心腳本可以做什麼,不能做什麼。 –

+0

感謝喬爾,事實上似乎是最好的方式 – Baral