簡體   English   中英

通過網絡訪問SQL Server數據庫2008 R2時出現問題

[英]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

發生這種情況的原因有很多:

  1. SQL Browser服務未打開
  2. 使用可信連接的連接字符串,您沒有設置為該用戶(通過從當前上下文獲取User來檢查代碼正在使用的用戶)
  3. 您沒有在客戶端上設置相同的協議(不太可能)

由於這是一個權限問題,因此您很可能必須在數據庫中設置Windows域帳戶才能使用它。 如果這不是應用程序用戶的選擇,則您可能希望移至sql帳戶而不是Windows帳戶。

問題解決了 !!

當數據庫附加到sql server management studio時,只是附加問題,它是作為舊名稱附加的,或者與從其復制的計算機有關

謝謝大家的努力:)

暫無
暫無

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

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