初級:ASP.NET使用OLEDB適配器訪問ACCESS資料庫出現各類串連異常

來源:互聯網
上載者:User
access|asp.net|訪問|資料|資料庫 同樣是一個常見問題,尤其在WIN2003下經常有人問起。
出現串連異常通常是由磁碟許可權引起,系統預設ASP.NET帳戶對於NTSF分區只具有最小特權,因此可能引起訪問異常。解決辦法是於系統中修正相應許可權。

另:連接字串中指定的獨佔訪問方式也可能引起串連異常。此情況只需修正連接字串即可。
如:
conx.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source="+ Server.MapPath("DATA\\典雅假期.mdb")+";";
即可

附MSDN關於建立自訂帳戶來運行 ASP.NET的文章,方便瞭解安全部署ASP.NET項目。
----------------------------------------------------------------------------------
如何建立一個自訂帳戶來運行 ASP.NET


Microsoft Corporation
目標
本模組用於:
• 建立一個具有足夠許可權正確運行 ASP.NET 應用程式的最小特權帳戶。
• 配置 ASP.NET,使其使用自訂的最小許可權帳戶來運行。
適用於:
本模組適用於下列產品和技術:
• Microsoft_ Windows_ XP 或 Windows 2000 Server(帶 Service Pack 3)以及更高版本的作業系統
• Microsoft .NET Framework 版本 1.0(帶 Service Pack 2)以及更高版本
• Internet 資訊服務 (IIS) 5.0 或 6.0(僅當使用 IIS 5.0 隔離模式時)
本模組的使用方法
要最大程度的利用本模組:
• 必須有開發 ASP.NET Web 應用程式的經驗並熟悉 machine.config 檔案的用途和結構。
• 必須有使用 Windows 管理工具建立和管理獨立或基於域的 Windows 使用者帳戶的經驗。
• 閱讀模組“ASP.NET Security”。本模組將向您提供下列各項的詳細資料:ASP.NET 安全性是如何工作的,ASP.NET 輔助進程標識對一個正在執行的應用程式的許可權有哪些影響,以及如何使用類比來輕鬆地向 Web 應用程式的使用者授予適當的權限等級。


摘要
預設情況下,每個 ASP.NET 輔助進程在名為 ASPNET 的最小特權帳戶的上下文中運行。如果 ASP.NET 應用程式部署在基於域的伺服器上,或需要訪問遠程伺服器上的資源,則可以通過配置 ASP.NET 以運行在不同帳戶的上下文中來簡化管理。
本模組描述了如何將 ASP.NET 配置為在自訂本地帳戶或域帳戶的上下文中運行,並描述了分配此帳戶以使其正常工作的許可權。

預備知識
在開始使用本模組之前,應瞭解以下內容:
ASP.NET 輔助進程標識
用於運行 ASP.NET 的預設帳戶(在安裝時建立)是一個最小特權的本地帳戶,並在 machine.config 中以如下方式指定:
<processModel enable="true" userName="machine" password="AutoGenerate" />
此帳戶在本機使用者和組下標識為 ASPNET ,並有一個在 Local System Authority (LSA) 中受到安全保護的強密碼。
當您需要使用 ASP.NET 進程標識訪問網路資源(如資料庫)時,可以執行下列任一操作:
• 使用域帳戶。
• 使用“鏡像”本地帳戶(即在兩台電腦上使用者名稱和密碼匹配的帳戶)。在電腦位於沒有信任關係的不同域中時,或電腦由防火牆隔開而無法開啟 NTLM 或 Kerberos 身分識別驗證所需的連接埠時,需要使用此方法。
最簡單的方法是在 Web 服務器上將 ASPNET 帳戶的密碼改為一個已知的值,然後在目標電腦上用相同的密碼建立一個名為 ASPNET 的帳戶。在 Web 服務器上,必須首先更改本機使用者和組中的 ASPNET 帳戶密碼,然後替換 machine.config 中 <processModel> 元素上的憑據。不應將純文字密碼儲存在 machine.config 中,而應改用 aspnet_setreg.exe 將加密密碼儲存在註冊表中。有關詳細資料,請參閱模組 8“ASP.NET 安全性”。
<processModel enable="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\processModel\
ASPNET_SETREG,userName"
password="registry:HKLM\SOFTWARE\YourSecureApp\processModel\
ASPNET_SETREG,password" . . ./>
可以使用本模組中提供的步驟建立一個最小特權的本地帳戶。
類比固定標識
通過在 web.config 中採用下列設定,您可以為特定的虛擬目錄設定固定標識。使用 aspnet_setreg.exe 將加密憑據儲存在註冊表中。
<identity impersonate="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\
identity\ASPNET_SETREG,userName"
password="registry:HKLM\SOFTWARE\YourSecureApp\
identity\ASPNET_SETREG,password" />
如果在同一個 Web 服務器上有多個 Web 網站,而這些 Web 網站需要以不同的身份運行,則通常使用此方法;例如,在應用程式宿主方案中就需要採用這種方法。
本模組了描述如何建立最小特權的本地帳戶。如果您主要進行管理工作,則可以使用一個具有強密碼的最小特權受限域帳戶。
當考慮用於運行 ASP.NET 的帳戶時,則請記住下列幾點:
• 預設情況下,ASP.NET 不進行類比。因此,Web 應用程式所執行的任何資源訪問都使用 ASP.NET 進程身份。在此情況下,Windows 資源必須有一個向 ASP.NET 進程帳戶授予訪問權的存取控制清單 (ACL)。
• 如果啟用了類比,則應用程式使用原始調用方的安全上下文來訪問資源,或如果配置了 IIS 進行匿名驗證,則使用匿名 Internet 使用者帳戶(預設情況下為 IUSR_MACHINE)。在此情況下,資源必須有基於原始調用方身份(或 IUSR_MACHINE)的 ACL。
• 在建立自訂帳戶時,應始終遵循最小特權原則 — 只提供最小限度的所需特權和許可權。
• 避免使用 SYSTEM 帳戶運行 ASP.NET。
• 避免向此帳戶授予“作為部分作業系統”的特權。

建立一個新的本地帳戶
此過程建立一個新的本地帳戶。預設情況下,這個新帳戶將被添加到本地 Users 組中。
要建立一個新的本地帳戶,請執行下列操作:
1. 建立一個本地帳戶(例如“CustomASPNET”)。
確保對此帳戶使用強密碼。強密碼應至少包含七個字元,並採用大小寫字母、數字和其他字元(如 *、? 或 $)的混合方式。
2. 清除 User must change password at next logon 選項。
3. 選擇 Password never expires 選項。

分配最小特權
此過程分配運行 ASP.NET 所需的一組最小的特權。
要分配最小特權,請執行下列操作:
1. 從 Administrative Tools 程式組中,啟動 Local Security Policy 工具。
2. 展開 Local Policies,然後選擇 User Rights Assignment。
右窗格中會顯示出一個特權列表。
3. 向新帳戶分配下列特權:
• 從網路訪問此電腦
• 作為批次工作登入
• 作為服務登入
• 拒絕本地登入
• 拒絕通過終端服務登入
注意 要向帳戶分配特權,請雙擊此特權,然後單擊 Add 來選擇所需的帳戶。
4. 關閉此工具。

分配 NTFS 許可權
此過程在本地檔案系統中向自訂的 ASP.NET 帳戶授予所需的 NTFS 許可權。
注意 此過程中的步驟適用於 Web 服務器上的檔案系統(而不適用於遠端電腦上的檔案系統,為了進行網路身分識別驗證,可以在遠端電腦上複製此帳戶)。
要分配 NTFS 許可權,請執行下列步驟:
• 啟動 Windows 資源管理員,並向表 1 中指定的檔案夾分配適當的許可權。
表 1 中提到的固定類比帳戶是指可以使用 web.config 中的 <identity> 元素有選擇地配置的帳戶,如下所示。
<identity impersonate="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。