国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET2.0數據庫之SQL Server安全性

2024-07-10 13:10:10
字體:
來源:轉載
供稿:網友
  sql server的安裝有兩個關于安全模式的選項。它們之間的差別在于由哪一個軟件執行認證過程。認證是一個確認將要連接sql server的用戶身份的過程。一旦執行了認證,sql server就能驗證這個用戶是否具有許可來連接一個被請求的資源,例如一個數據庫。如果用戶具有連接數據庫的許可,那么sql server將允許連接請求成功,否則,連接失敗。這個驗證用戶許可的過程還被稱為授權。

  · windows authentication(還被稱為trusted authentication或者integrated security)使用進行連接請求過程的windows用戶身份來執行對數據庫的授權。在這種情況下,連接字符串不必提供顯式的用戶名和密碼。asp.net以一個名為"aspnet"的本地用戶來運行(或者在iis 6.0當中使用用戶名"network service"),所以當使用windows authentication時,sql將會檢查這個用戶是否擁有使用數據庫的許可。此時,所有的asp.net應用程序都用這個相同的用戶運行,所以該安全模式對這些應用程序一視同仁。雖然可以在單獨的asp.net進程中運行每一個應用程序(單獨的用戶運行每個程序),或者可以模擬進行連接請求的瀏覽器客戶的windows用戶身份,但是這些內容都超出了本書所要講述的范圍。不過,客戶模擬的情況在web應用程序中是windows authentication最常見的使用方式。

  · sql authentication針對在sql server內配置的用戶來檢查顯式提供的用戶名和密碼(無需涉及操作系統)。在這種情況下,在asp.net進程中運行的每個應用程序都能以單獨的證書來連接數據庫,這樣就把應用程序合理地隔離開了(應用程序a如果沒有b的用戶名和密碼就不能連接至b的數據庫)。這是用于部署的web應用程序的最常見認證模式,特別是在共享宿主的情況下。它的一個小缺點就是需要應用程序保留用于連接的用戶賬戶的密碼,并且如果該密碼被惡意用戶獲取,那么將危及數據庫的安全。但是,在本書后面將會看到,asp.net提供了一個安全的方式,將sql authentication密碼以加密的格式保存在web.config文件中,這樣就降低了密碼被獲取的風險。

  · mixed mode是sql server的配置,它既允許windows authentication,也允許sql authentication。

  在安裝sql server或者sse時,要選擇一種認證模式。在sql server中,有向導會在安全步驟中幫助選擇,而在sse中,默認選擇是windows authenti cation。如果要安裝sql authentication,就必須顯式地配置。本文使用的是windows authentication。

  如果已經安裝了sql server或者sse,就能通過打開regedit來查看所指定的認證模式(當然需要先備份),找到hkey_local_machine/software/microsoft/microsoft sql server并搜索loginmode。值為1的注冊子鍵表示windows auth entication,而值2表示mixed authentication模式。

  表3-1總結了這些模式之間的區別。

  表3-1

  windwos authenticationsql authentication
可替換名稱trusted authentication
integrated security
沒有,但是mixed mode authen tication允許使用windows或者sql authentication
典型環境 內部網因特網
用戶和認證過程列表的位置 windowssql server
sse安裝默認安裝需要指定安裝
連接字符串trusted_connection=true或者integrated security=trueuser=username;
password=password
asp.net web應用程序的用戶asp.net進程、aspnet(iis 5.x)或者network service(iis 6) sql用戶
優勢 較好的安全性;可以對用戶在sql事件和windows事件中的活動進行跟蹤 無需創建新賬戶即可在宿主機上部署;獨立于操作系統

宿主的內部網站點只需一般技術

為應用程序提供更加靈活的方式以不同的證書來連接每個數據庫
劣勢 給予web應用程序windows證書有可能會將os中的權限范圍設置過大 密碼存儲在web應用程序中(在windows認證中則不是)。確認密碼保存在web.config文件中并已加密。

允許使用sa證書的web應用程序的低級操作??偸菫閍sp.net web應用程序創建新的證書并只給予所需的權限

  現在,知道了sql使用安全的方式,我們來考慮數據使用者(datasource控件)將如何滿足需求。首先,使用從vwd和vwd web server(cassini)獲取的數據,主要是在設計和測試的時候。第二,在部署之后應當從iis訪問數據。這兩個數據使用者有不同的用戶名。vwd和vwd web server使用登錄進windows的人員的名稱,而iis程序使用名稱aspnet。

  如果sql server使用windows認證,那么sqldatasource控件需要在連接字符串中包含如下代碼:integrated security=true(或者trusted_connection=true)。這個參數將指示sql server根據請求者的windows登錄賬戶對數據請求進行認證。如果是登錄安裝sse的用戶,其證書將授予訪問sse的權限。使用vwd和vwd web server將一切順利,因為vw web server的用戶被認為是登錄進windows的程序人員,于是具有sse上的賬戶。但是,即使是應用程序在vwd之外工作正常,當站點遷移至iis后,也會不正常。iis是在名為aspnet的用戶賬戶下運行的(或者是在iis6/windows 2003 server中的network service)。因此,運行著iis的機器的管理員必須添加asp.net用戶并授予其許可。這個過程超出了本書講解的范圍,但是在很多iis管理員手冊中都有詳細的描述。總而言之,如果sql server使用的是windows認證,就能使用vwd和vwd web server進行本書的練習。只有在授予了訪問數據庫的asp.net進程賬戶許可之后,您的頁面才可以在iis上運行。

  如果sql server使用的是sql認證,sql將進行自己的認證過程。這個過程將不依靠windows的用戶列表。連接字符串中包含了兩個參數:user=username, password=password?,F在就可以從vwd、vwd web server或者iis中使用頁面了,因為不需要在windows中創建用戶賬戶。但是,我們還要使用sql server中的賬戶。惟一的默認賬戶是sa。在部署之前,應當在sql server中創建另外一個賬戶,該賬戶只擁有執行aspx頁面的權限。如果不創建sa以外的替換賬戶(和密碼以保護sa),那么將會使站點處于最知名、最易于利用的安全漏洞之中。任何黑客都知道使用空密碼的userid='sa'來登錄。

  對兩種認證模式來說,當使用前面所述的連接字符串時,用戶將以初始賬戶登錄進sql server。這個賬戶就是sa,表示系統管理員,從名稱上可以看出,它具有對所有對象的所有權限。在當前的sql server版本中,不能以密碼為null的sa來安裝服務。而在sse中,必須以參數sapwd="mystrongpassword"來安裝。這里的強密碼表示至少不為null。最好使用不少于七位的字符并確保使用字母、數字和符號的混和形式。在學生練習之外的大多數情況下,需要為每個數據庫和應用程序指定一個賬戶。應避免讓一個應用程序擁有可以訪問其他應用程序數據的權限。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇州市| 平武县| 石泉县| 准格尔旗| 大宁县| 工布江达县| 元江| 大余县| 和林格尔县| 炉霍县| 蒙自县| 城固县| 理塘县| 滁州市| 中方县| 双辽市| 屯留县| 东山县| 阜平县| 屏山县| 台中县| 山东省| 玉门市| 扶余县| 孙吴县| 常德市| 理塘县| 永州市| 昆明市| 高要市| 莱州市| 柳林县| 平昌县| 桦川县| 三原县| 永城市| 和静县| 开封县| 武定县| 信宜市| 淳安县|