SQL-Server數據庫安全管理文章分類:數據庫轉自:http://blog./u3/112561/showart_2218234.html 以SQL-Server2005為例來說一下關于數據庫安全管理方面的知識(因為我學的就是SQL-Server2005)。SQL Server 2005主要從以下幾個方面來保證數據庫安全管理的: 3.服務器角色的概念:
服務器角色(也稱做固定服務器角色)是執(zhí)行服務器級管理操作的權限的集合。我們可以簡單的把它理解成“Windows系統(tǒng)中的組”。它跟“Windows系統(tǒng)中的組”是一樣的作用。只不過稱呼不同罷了!-_-!固定服務器角色及其描述如下表:(或者你可以到“安全性”下的“服務器角色”選項中查看)。
注意:鏈接服務器可以使SQL Server對遠程服務器上的數據源執(zhí)行命令。Bulk Insert語句主要是用來實現SQL Server的大數據量文本文件的批量導入。
我們在實際生活中,可以根據自己工作的實際情況來運用這些個角色來為用戶分配數據庫服務器權限。打開服務器角色配置頁的方法是:默認數據庫下的“安全性”選項中的“登錄名”。然后選擇你要為哪個用戶配置服務器角色,然后選擇用戶右擊“屬性”來打開。打開后選擇第二項“服務器角色”來為用戶配置服務器角色權限。 二、新建數據庫用戶:
在建立了SQL Server登錄賬戶以后,需要授予用戶或組許可,使他們能夠在數據庫中執(zhí)行任務。登錄賬戶用于訪問SQL Server實例,數據庫用戶則用于訪問數據庫。要想訪問某個數據庫,就必須在這個數據庫上建立相對應的數據庫用戶。 實際上數據庫用戶是映射到登錄賬戶上的。也就是當我們新建一個登錄名時,就可以把它映射到一個數據庫里,成為這個數據庫的數據庫用戶。建立一個數據庫用戶的具體步驟如下: 首先建立一個登錄名——然后把這個登錄名映射到你想要建立數據庫用戶的數據庫中(當然你首先得有你自己的數據庫)。下面是建立一個數據庫DB上的一個數據庫用戶的步驟: 1.首先建立自己的數據庫: ![]() 2.然后新建登錄名(我這里是使用的Windows用戶,直接搜索找到用戶就OK了):
![]() ![]() 3.把登錄賬戶映射到數據庫DB讓其成為數據庫DB的數據庫用戶: ![]() 4.然后就可以到DB數據庫下面的“安全性”——“用戶”里面就可以找到你映射的數據庫用戶了! 如果有多個人對某個數據庫具有相同的權限的時候,我們可以直接在AD中新建一個組,然后把這些個用戶加入到組里,最后到SQL Server服務器上新建一個登錄名,新建時候輸入“域名中"."前面的部分\組名”(例如:域名是abc.com的話,那么輸入時候就輸入“abc\組名”)。新建好后,這個組中的用戶就都可以登錄SQL Server數據庫了。 三、數據庫角色: 數據庫角色的作用是為數據庫用戶設置對某個數據庫的權限,而數據庫角色又分為固定數據庫角色和用戶定義數據庫角色。固定數據庫是一組SQL Server 預定義的數據庫角色,具有數據庫級別的管理權力,用來完成常用的數據庫任務。 1.固定數據庫角色有以下幾種:
注意:PUBLIC角色是特殊的固定數據庫角色,特點是:捕獲數據庫中用戶的所有默認權限、所有用戶和角色或組默認屬于public角色、無法將用戶和組或角色指派給它,因為默認情況下它們即屬于該角色、不能被刪除。為public角色授予權限時必須非常小心,因為一個小小的錯誤可能導致用戶非法訪問數據庫。 2.用戶自定義數據庫角色: 當固定服務器角色不能滿足要求時,就可以自己創(chuàng)建數據庫角色,定義一組用戶具有相同的權限。可以使用SQL Server Management Studio的對象資源管理器創(chuàng)建用戶定義數據庫角色。為數據庫設置權限的步驟如下: (1).打開你新建的數據庫下面的“安全性”選項下的“角色”里的“數據庫角色”來設置數據庫權限。 然后你想讓你的用戶擁有什么權限就把他加入到哪個數據庫角色中。然后這個用戶就擁有了相應的權限。比如把個用戶加入到db_owner角色中。
四、數據庫訪問審核:
審核可以幫助跟蹤并阻止系統(tǒng)中未經授權的用戶行為。對那些具有高特權但卻干壞事的管理員或者用戶進行審核,對保護系統(tǒng)十分有用。一個好的審核系統(tǒng)允許只對那些重要的事件進行過濾,因此用戶不會淹沒在海量的信息中。所有數據平臺均在不同程度上提供審查功能。 下面來說一下SQL Server安全審核的設置: 首先打開數據庫服務器的“屬性”——“安全性”里的“登錄審核”選項來設置數據庫訪問審核。根據自己的實際情況來設置那些選項。比如你是要審核“登錄失敗”的還是“登錄成功”的或者是“登錄失敗和成功”都進行審核的。當這些設置好后,你就可以用一個錯誤的登錄名或正確的登錄名來登錄一下試試審核啟動沒有。你可以在Windows系統(tǒng)中的“事件查看器”里面找到審核的內容。 五、屏蔽SQL Server常見漏洞: 1.修改SA密碼。 因為SA是SQL Server默認的超級管理員,所以一定要確保SA密碼的安全性。最好是把SA密碼設的復雜點,如果有必要可以把SA的用戶名也修改了。 2.刪除或禁用不必要的用戶: 系統(tǒng)中包含的默認用戶,往往因為用戶名的公開,成為黑客攻擊的目標。所以安全的做法是應該將這些公開的用戶刪除或禁用后重建。比如說:默認的Administrators組就可以直接刪了或禁用。 3.刪除危險的存儲過程: 為什么要刪除不必要的存儲過程呢?因為有些存儲過程很容易被人利用,用來提升權限或進行破壞。主要有以下幾種存儲過程: (1).執(zhí)行操作系統(tǒng)命令的存儲過程xp_cmdshell。 (2).操縱OLE自動化對象的存儲過程。 (3).注冊表訪問的存儲過程。 (4).文件操作類存儲過程。 (5).進程管理類存儲過程。 (6).任務管理類存儲過程。 上面這幾種存儲過程因為我也不怎么懂所以在這里不詳細介紹了,你們可以看我另一篇文章“SQL高級注入使用之存儲過程”(http://blog./u3/112561/showart_2223533.html)這是我從我們老師那里轉的^_^。有興趣的可以去看看。 4.關閉不必要的網絡連接功能。 SQL Server 提供外圍應用配置器單一的界面,減少外圍應用,停止或禁用不必要的服務或連接。外圍應用的減少使得對系統(tǒng)的攻擊途徑減少,有助于提高安全性。使用“外圍應用配置器”可以啟用、禁用、開始或停止SQL Server2005安裝的一些功能服務和遠程連接。打開“外圍應用配置器”的步驟是:“開始”——“程序”——“Microsoft SQL Server 2005”——“配置工具”——“SQL Server外圍應用配置器”來打開“SQL Server外圍應用配置器”。打開后自己就可以配置了。 5.配合防火墻過濾指定端口訪問: 默認情況下,SQL Server2005會偵聽TCP1433端口,并將1433UDP端口用于客戶端與服務器間的協議。因此,也為攻擊者提供了大量入侵機會,所以應該結合防火墻來限制對端口的訪問。使用SQL Server配置管理器可以通過更改默認端口、配置命名實例來偵聽同一端口,也可以隱藏端口。 6.禁用不必要的協議。 7.加密數據(也就是通過證書等加密方法來加密數據來保證數據安全)。 8.定期安裝補丁。 好了,這一節(jié)就完了。。。真累-_-!。 |
|