![](/img/trans.png)
[英]How to access sql server 2008 R2 from C# ClickOnce application over a network
[英]Problem accessing sql server database 2008 r2 over network
我剛剛用2008 R2版本中構建的sql數據庫完成了c#應用程序
我想通過LAN共享此數據庫,而我的連接字符串為:
ConnectionString = @"Data Source=192.168.0.1,1433\SQLEXPRESS;user id=Rula; password=marojo;AttachDbFilename=\\192.168.0.1\Release\WEPA.mdf;Connection Timeout=30;Integrated Security=SSPI;user instance=true";
其中192.168.0.1是托管sqlexpress實例的計算機的IP
當我從托管計算機本地連接到數據庫時,沒有任何錯誤,但是當我嘗試從共享應用程序連接到數據庫時,出現以下錯誤:
用戶無權執行此操作。
我將GUEST用戶映射到托管計算機上的數據庫時,因為我知道如果計算機嘗試遠程連接到數據庫,則它將作為來賓連接。
注意:我的應用程序和數據庫通過網絡共享在同一文件夾中,再次在本地一切正常
請問我該怎么做才能解決這個問題? 在此先感謝=-)
如果兩台計算機不在同一域中,則將失敗。 您可能要使用sql登錄名
來賓帳戶不會在受信任的連接中使用。 集成連接使用連接字符串使用附加到流程的用戶帳戶。
http://forums.asp.net/t/822604.aspx/1
如果要使用集成安全性,則需要將Web服務器配置為摘要登錄,然后需要向所有(潛在)經過身份驗證的用戶授予對數據庫的訪問權限。 由於您要添加到流程中的不必要的復雜性,通常不會執行此操作。 只需使用像Ali所述的sql鏈接即可完成。
好的,我發現您的連接字符串中有幾處錯誤。
即,您已經定義了用戶ID和密碼...然后繼續設置Integrated Security標志。 這些是互斥的。 它要么以應用程序正在執行的同一用戶身份(最有可能是應用程序池用戶帳戶)進行連接,要么以連接字符串中定義的用戶身份進行連接。
您看到7和XP之所以不同的原因僅僅是因為一個默認使用用戶ID /密碼,另一個默認使用集成安全性。
我建議您訪問http://www.connectionstrings.com/ ,以建立適當的連接字符串。
更新:
我看到的其他東西。 首先,AttachDbFilename只能與集成安全性一起使用。 顯然,這是不可能的,因此您需要擺脫該參數,並直接在服務器上配置sqlexpress以將該數據庫文件作為目標。
其次,用戶實例用於桌面部署。 還要消除它,因為它將占用大量內存。
第三,閱讀: http : //msdn.microsoft.com/zh-cn/library/ms247257(v=VS.100).aspx
發生這種情況的原因有很多:
由於這是一個權限問題,因此您很可能必須在數據庫中設置Windows域帳戶才能使用它。 如果這不是應用程序用戶的選擇,則您可能希望移至sql帳戶而不是Windows帳戶。
問題解決了 !!
當數據庫附加到sql server management studio時,只是附加問題,它是作為舊名稱附加的,或者與從其復制的計算機有關
謝謝大家的努力:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.