2010-10-04 58 views
3

我有一個使用成員身份功能的ASP.NET應用程序。我連接到一個包含aspnet_membership模式的SQL Server數據庫。我現在在應用程序的連接字符串中使用「sa」和sa密碼,我知道這是一個可怕的事情。我的問題是,什麼是連接字符串的最佳選擇?我應該在sql數據庫名稱「MyAppUser」(或其他)中創建一個用戶並將aspnet_membership_fullcontrol模式分配給該用戶嗎?這樣,應用程序就可以連接並獲得完整的控制權限,然後根據我寫入應用程序的邏輯限制個人用戶的訪問權限。將ASP.NET應用程序連接到SQL Server時的最佳實踐建議

這是一個很好的方法嗎? (訪問僅限於應用程序使用的特定數據庫,而不限於其他任何數據庫)。

如果不是,有什麼更好的方法來得到,同時利用ASPNET成員我的連接字符串使用用戶「sa」了嗎?

感謝您的任何建議,你可以給。

回答

0

如果這是一個內部應用程序,你可以使用Windows身份驗證(集成安全性=真),否則創建SQL登錄你的應用程序,地圖數據庫用戶和應用足夠的權限(可能是讀/寫)。

+0

感謝您的答覆。我正在使用SQL Server身份驗證,而不是Windows。所以我創建了一個登錄名,並賦予了我需要的所有權限以使其工作。不幸的是,它似乎需要dbo權限才能運行我編寫的存儲過程。我想改變這一點,我會繼續調查。這絕對是一種改進,因爲我至少只能訪問它所需的數據庫,這就是進步。感謝您的回答。 – rogdawg 2010-10-04 15:53:50

+0

您還需要設置存儲過程本身的權限 - 右鍵單擊​​SP並轉至屬性,然後單擊權限。 – 2010-10-05 11:49:05

+0

alternativly創建模式和分配您的用戶到這一點,那麼創建SP的該模式下 - 有這樣一個讀 - http://vyaskn.tripod.com/sql_server_security_best_practices.htm,這http://msdn.microsoft.com /en-us/library/ms190387.aspx,只是有一般的SQL Server安全谷歌 - 有很多,但它是相當直截了當到底(雖然2008年不會使其更復雜) – 2010-10-05 11:53:52

0

是 - 爲該項目創建一個特定的用戶和密碼,並將這些詳細信息存儲在app.config或web.config文件中,然後從此處開始。

如果使用可信連接,那麼你在其中的用戶具有訪問數據庫意味着調試控制是不實際後來是比較困難的。

+0

你可以得到SQL服務器可以告訴你這一點 - 我不記得它是什麼,像SYSUSER,用戶,CURRENT_USER,SYS.USER - 類似的東西...您可以設置爲一列的默認,或在您的查詢中使用它。 – 2010-10-05 11:59:23

+0

如果您將密碼存儲在配置文件中,請確保您已加密密碼... – 2010-10-05 11:59:59

0

對於Windows應用程序,我們通常使用Windows身份驗證。如果我們確實需要使用特定的用戶名/密碼,我們將加密該信息,並存儲爲appsetting鍵/值對。

對於asp.net應用程序,我們通常爲該應用程序創建一個sql登錄並將密碼存儲在web配置中。然後,我們將加密的Web配置文件

請參考以下鏈接的ConnectionString部分,瞭解如何做到這一點的說明: http://msdn.microsoft.com/en-us/library/ff647398.aspx