新聞中心
SQL Server數(shù)據(jù)庫安全包括哪些內容
SQL
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供金鳳網站建設、金鳳做網站、金鳳網站設計、金鳳網站制作等企業(yè)網站建設、網頁設計與制作、金鳳企業(yè)網站模板建站服務,十年金鳳做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
Server數(shù)據(jù)庫安全包括:1、數(shù)據(jù)信息安全,不易被非法程序讀取。2、數(shù)據(jù)信息完整,不會因為存儲時間長等意外情況而丟失數(shù)據(jù)。3、好像還有個備份還原機制,從而使損壞數(shù)據(jù)能夠恢復。
其他的忘記了,希望對你有所幫助
如何提高SQL Server的安全性控制
SQLServer2000的安全配置在進行SQLServer2000數(shù)據(jù)庫的安全配置之前,首先你必須對操作系統(tǒng)進行安全配置,保證你的操作系統(tǒng)處于安全狀態(tài)。然后對你要使用的操作數(shù)據(jù)庫軟件(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基于數(shù)據(jù)庫的WEB應用常出現(xiàn)的安全隱患,對于腳本主要是一個過濾問題,需要過濾一些類似,‘;@/等字符,防止破壞者構造惡意的SQL語句。接著,安裝SQLServer2000后請打上補丁sp1,sp2以及最新的sp3,sp4。在做完上面三步基礎之后,我們再來討論SQLServer的安全配置。1、使用安全的密碼策略我們把密碼策略擺在所有安全配置的第一步,請注意,很多數(shù)據(jù)庫帳號的密碼過于簡單,這跟系統(tǒng)密碼過于簡單是一個道理。對于sa更應該注意,同時不要讓sa帳號的密碼寫于應用程序或者腳本中。健壯的密碼是安全的第一步!SQLServer2000安裝的時候,如果是使用混合模式,那么就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。同時養(yǎng)成定期修改密碼的好習慣。數(shù)據(jù)庫管理員應該定期查看是否有不符合密碼要求的帳號。比如使用下面的SQL語句:UsemasterSelectname,Passwordfromsysloginswherepasswordisnull2、使用安全的帳號策略由于SQLServer不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在數(shù)據(jù)庫應用中使用sa帳號,只有當沒有其它方法登錄到SQLServer實例(例如,當其它系統(tǒng)管理員不可用或忘記了密碼)時才使用sa。建議數(shù)據(jù)庫管理員新建立個擁有與sa一樣權限的超級用戶來管理數(shù)據(jù)庫。安全的帳號策略還包括不要讓管理員權限的帳號泛濫。SQLServer的認證模式有Windows身份認證和混合身份認證兩種。如果數(shù)據(jù)庫管理員不希望操作系統(tǒng)管理員來通過操作系統(tǒng)登陸來接觸數(shù)據(jù)庫的話,可以在帳號管理中把系統(tǒng)帳號“BUILTIN\Administrators”刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有法來恢復了。很多主機使用數(shù)據(jù)庫應用只是用來做查詢、修改等簡單功能的,請根據(jù)實際需要分配帳號,并賦予僅僅能夠滿足應用要求和需要的權限。比如,只要查詢功能的,那么就使用一個簡單的public帳號能夠select就可以了。3、加強數(shù)據(jù)庫日志的記錄審核數(shù)據(jù)庫登錄事件的“失敗和成功”,在實例屬性中選擇“安全性”,將其中的審核級別選定為全部,這樣在數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)日志里面,就詳細記錄了所有帳號的登錄事件。請定期查看SQLServer日志檢查是否有可疑的登錄事件發(fā)生,或者使用DOS命令。findstr/C:"登錄"d:\MicrosoftSQLServer\MSSQL\LOG\*.*4、管理擴展存儲過程對存儲過程進行大手術,并且對帳號調用擴展存儲過程的權限要慎重。其實在多數(shù)應用中根本用不到多少系統(tǒng)的存儲過程,而SQLServer的這么多系統(tǒng)存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統(tǒng)的存儲過程能很容易地被人利用起來提升權限或進行破壞。如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:usemastersp_dropextendedproc'xp_cmdshell'xp_cmdshell是進入操作系統(tǒng)的最佳捷徑,是數(shù)據(jù)庫留給操作系統(tǒng)的一個大后門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。sp_addextendedproc'xp_cmdshell','xpsql70.dll'如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特征不能使用),這些過程包括如下:Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetPropertySp_OAMethodSp_OASetPropertySp_OAStop去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統(tǒng)管理員的密碼來,如下:Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvaluesXp_regreadXp_regremovemultistringXp_regwrite還有一些其他的擴展存儲過程,你也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對數(shù)據(jù)庫或應用程序的傷害。5、使用協(xié)議加密SQLServer2000使用的TabularDataStream協(xié)議來進行網絡數(shù)據(jù)交換,如果不加密的話,所有的網絡傳輸都是明文的,包括密碼、數(shù)據(jù)庫內容等等,這是一個很大的安全威脅。能被人在網絡中截獲到他們需要的東西,包括數(shù)據(jù)庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協(xié)議,當然,你需要一個證書來支持。6、不要讓人隨便探測到你的TCP/IP端口默認情況下,SQLServer使用1433端口監(jiān)聽,很多人都說SQLServer配置的時候要把這個端口改變,這樣別人就不能很容易地知道使用的什么端口了??上?,通過微軟未公開的1434端口的UDP探測可以很容易知道SQLServer使用的什么TCP/IP端口了。不過微軟還是考慮到了這個問題,畢竟公開而且開放的端口會引起不必要的麻煩。在實例屬性中選擇TCP/IP協(xié)議的屬性。選擇隱藏SQLServer實例。如果隱藏了SQLServer實例,則將禁止對試圖枚舉網絡上現(xiàn)有的SQLServer實例的客戶端所發(fā)出的廣播作出響應。這樣,別人就不能用1434來探測你的TCP/IP端口了(除非用PortScan)。7、修改TCP/IP使用的端口請在上一步配置的基礎上,更改原默認的1433端口。在實例屬性中選擇網絡配置中的TCP/IP協(xié)議的屬性,將TCP/IP使用的默認端口變?yōu)槠渌丝?9、拒絕來自1434端口的探測由于1434端口探測沒有限制,能夠被別人探測到一些數(shù)據(jù)庫信息,而且還可能遭到DOS攻擊讓數(shù)據(jù)庫服務器的CPU負荷增大,所以對Windows2000操作系統(tǒng)來說,在IPSec過濾拒絕掉1434端口的UDP通訊,可以盡可能地隱藏你的SQLServer。10、對網絡連接進行IP限制SQLServer2000數(shù)據(jù)庫系統(tǒng)本身沒有提供網絡連接的安全解決法,但是Windows2000提供了這樣的安全機制。使用操作系統(tǒng)自己的IPSec可以實現(xiàn)IP數(shù)據(jù)包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的端口連接,把來自網絡上的安全威脅進行有效的控制。
sqlserver有哪些安全策略
Microsoft建立了一種既靈活又強大的安全管理機制,它能夠對用戶訪問SQL Server服務器系統(tǒng)和數(shù)據(jù)庫的安全進行全面地管理。按照本文介紹的步驟,你可以為SQL Server 7.0(或2000)構造出一個靈活的、可管理的安全策略,而且它的安全性經得起考驗。
一、驗證方法選擇
本文對驗證(authentication)和授權(authorization)這兩個概念作不同的解釋。驗證是指檢驗用戶的身份標識;授權是指 允許用戶做些什么。在本文的討論中,驗證過程在用戶登錄SQL Server的時候出現(xiàn),授權過程在用戶試圖訪問數(shù)據(jù)或執(zhí)行命令的時候出現(xiàn)。
構造安全策略的第一個步驟是確定SQL Server用哪種方式驗證用戶。SQL Server的驗證是把一組帳戶、密碼與Master數(shù)據(jù)庫Sysxlogins表中的一個清單進行匹配。Windows NT/2000的驗證是請求域控制器檢查用戶身份的合法性。一般地,如果服務器可以訪問域控制器,我們應該使用Windows NT/2000驗證。域控制器可以是Win2K服務器,也可以是NT服務器。無論在哪種情況下,SQL Server都接收到一個訪問標記(Access Token)。訪問標記是在驗證過程中構造出來的一個特殊列表,其中包含了用戶的SID(安全標識號)以及一系列用戶所在組的SID。正如本文后面所介紹 的,SQL Server以這些SID為基礎授予訪問權限。注意,操作系統(tǒng)如何構造訪問標記并不重要,SQL Server只使用訪問標記中的SID。也就是說,不論你使用SQL Server 2000、SQL Server 7.0、Win2K還是NT進行驗證都無關緊要,結果都一樣。
如果使用SQL Server驗證的登錄,它最大的好處是很容易通過Enterprise Manager實現(xiàn),最大的缺點在于SQL Server驗證的登錄只對特定的服務器有效,也就是說,在一個多服務器的環(huán)境中管理比較困難。使用SQL Server進行驗證的第二個重要的缺點是,對于每一個數(shù)據(jù)庫,我們必須分別地為它管理權限。如果某個用戶對兩個數(shù)據(jù)庫有相同的權限要求,我們必須手工設 置兩個數(shù)據(jù)庫的權限,或者編寫腳本設置權限。如果用戶數(shù)量較少,比如25個以下,而且這些用戶的權限變化不是很頻繁,SQL Server驗證的登錄或許適用。但是,在幾乎所有的其他情況下(有一些例外情況,例如直接管理安全問題的應用),這種登錄方式的管理負擔將超過它的優(yōu) 點。
二、Web環(huán)境中的驗證
即使最好的安全策略也常常在一種情形前屈服,這種情形就是在Web應用中使用SQL Server的數(shù)據(jù)。在這種情形下,進行驗證的典型方法是把一組SQL Server登錄名稱和密碼嵌入到Web服務器上運行的程序,比如ASP頁面或者CGI腳本;然后,由Web服務器負責驗證用戶,應用程序則使用它自己的 登錄帳戶(或者是系統(tǒng)管理員sa帳戶,或者為了方便起見,使用Sysadmin服務器角色中的登錄帳戶)為用戶訪問數(shù)據(jù)。
這種安排有幾個缺點,其中最重要的包括:它不具備對用戶在服務器上的活動進行審核的能力,完全依賴于Web應用程序實現(xiàn)用戶驗證,當SQL Server需要限定用戶權限時不同的用戶之間不易區(qū)別。如果你使用的是IIS 5.0或者IIS 4.0,你可以用四種方法驗證用戶。第一種方法是為每一個網站和每一個虛擬目錄創(chuàng)建一個匿名用戶的NT帳戶。此后,所有應用程序登錄SQL Server時都使用該安全環(huán)境。我們可以通過授予NT匿名帳戶合適的權限,改進審核和驗證功能。
第二種方法是讓所有網站使用Basic驗證。此時,只有當用戶在對話框中輸入了合法的帳戶和密碼,IIS才會允許他們訪問頁面。IIS依靠一個NT 安全數(shù)據(jù)庫實現(xiàn)登錄身份驗證,NT安全數(shù)據(jù)庫既可以在本地服務器上,也可以在域控制器上。當用戶運行一個訪問SQL Server數(shù)據(jù)庫的程序或者腳本時,IIS把用戶為了瀏覽頁面而提供的身份信息發(fā)送給服務器。如果你使用這種方法,應該記住:在通常情況下,瀏覽器與服 務器之間的密碼傳送一般是不加密的,對于那些使用Basic驗證而安全又很重要的網站,你必須實現(xiàn)SSL(Secure Sockets Layer,安全套接字層)。
在客戶端只使用IE 5.0、IE 4.0、IE 3.0瀏覽器的情況下,你可以使用第三種驗證方法。你可以在Web網站上和虛擬目錄上都啟用NT驗證。IE會把用戶登錄計算機的身份信息發(fā)送給IIS,當 該用戶試圖登錄SQL Server時IIS就使用這些登錄信息。使用這種簡化的方法時,我們可以在一個遠程網站的域上對用戶身份進行驗證(該遠程網站登錄到一個與運行著Web 服務器的域有著信任關系的域)。
最后,如果用戶都有個人數(shù)字證書,你可以把那些證書映射到本地域的NT帳戶上。個人數(shù)字證書與服務器數(shù)字證書以同樣的技術為基礎,它證明用戶身份標 識的合法性,所以可以取代NT的Challenge/Response(質詢/回應)驗證算法。Netscape和IE都自動在每一個頁面請求中把證書信 息發(fā)送給IIS。IIS提供了一個讓管理員把證書映射到NT帳戶的工具。因此,我們可以用數(shù)字證書取代通常的提供帳戶名字和密碼的登錄過程。
由此可見,通過NT帳戶驗證用戶時我們可以使用多種實現(xiàn)方法。即使當用戶通過IIS跨越Internet連接SQL Server時,選擇仍舊存在。因此,你應該把NT驗證作為首選的用戶身份驗證辦法。
三、設置全局組
構造安全策略的下一個步驟是確定用戶應該屬于什么組。通常,每一個組織或應用程序的用戶都可以按照他們對數(shù)據(jù)的特定訪問要求分成許多類別。例如,會 計應用軟件的用戶一般包括:數(shù)據(jù)輸入操作員,數(shù)據(jù)輸入管理員,報表編寫員,會計師,審計員,財務經理等。每一組用戶都有不同的數(shù)據(jù)庫訪問要求。
SQLServer安全模式、密碼管理及管理建議
兩種安全模式:
Windows 認證模式:用戶通過一個現(xiàn)成的Windows用戶帳號來連接服務器。當一個用戶試圖與一個服務器連接的時候,SQL Server將會認證用戶的Windows帳號的名稱和密碼。用戶不能同時進入網絡和SQL Server,只能進入其中的一個。這一方法也被稱為一個被依賴的連接。
混合模式:這一模式將Windows認證模式和SQL Server認證聯(lián)接在一起。用戶可以通過一個Windows用戶帳號進行連接,這正如Windows認證一樣。但是,你也可以在SQL Server中直接建立用戶帳號。每一個SQL Server帳號都存儲了一個用戶名和密碼。
我們建議在可能的情況下都使用Windows認證模式。然而,混合模式很可以使用,特別是在SQL Server 7.0(或更早版本)都可以使用。.對于早期的SQL Server版本,SQL Server認證存在一些缺點。Windows認證已經集成了操作系統(tǒng)的安全系統(tǒng),這就提供了比SQL Server認證更多的安全特性,很容易的使用,效率更加高,安全性更加好。在設計開始的時候,你應該認真考慮選擇哪一種模式最為合適。
密碼
無論采用哪一些模式,你應該記住在SQL Server中為系統(tǒng)管理者(sa)設置一個密碼。當安裝SQL Server時,安裝程序會自動建立一個帶有SQL Server注冊名稱(sa)和一個空白密碼的管理用戶。如果你保持這些用戶設置原樣而使用混合安全模式,任何具備一點SQL Server基礎知識的用戶都可以很容易地進入到你的數(shù)據(jù)庫中并做任何他想要做的事情。如果你使用的是Windows認證模式,在理論上你無需為sa用戶設置一個密碼,因為SQL Server注冊不會接受這些的設置。但是設置是一個很良好的操作,尤其是當你被迫轉移到將來使用的混合模式的時候。
如果安全模式已經啟動,注冊將成為關鍵。你必須使用正確的.方法來啟動程序,注冊也是同樣的,如果你不能正確地輸入用戶名和密碼,程序將不能連接到網絡,同時也不能連接到SQL Server。
作為一個管理者,一旦你已經啟動了程序,你就做好安全管理的準備??梢酝ㄟ^定義以下的特性而實現(xiàn):
用戶(帳號):一個SQL Serve安全帳號代表著一個唯一的用戶。一個用戶也只有一個Windows帳號或者一個SQL Server注冊,這與數(shù)據(jù)庫中的用戶帳號相統(tǒng)一。
組(帳號):每一個用戶都屬于一個或多個組,這由認證模式決定。每一個組都具有特定許可。作為一個組的成員,你將獲得所有組的許可。
對象所有權:所有權屬于建立對象的用戶。所有者可以將訪問權限分配給用戶。如果你是一個視的所有者,你還可以決定哪些用戶可以通過視來查看數(shù)據(jù)。
許可:一個許可代表著具有執(zhí)行某些操作的權利,比如打開一個視或者更改一個存儲程序。SQL Server承認許可的三種狀態(tài):GRANT給你一個用戶訪問;REVOKE刪除訪問;DENY防止用戶訪問對象。
任務:這是一個SQL Server安全帳號,可以將帳號的集合作為一個簡單的單元來處理。任務定義在特定數(shù)據(jù)庫中用戶可以做哪些和哪些不可以做。
設計過程應該用效地定義哪些地方需要進行安全設置和如何設置。在這一過程之前你應該從兩個方面考慮:
敏感數(shù)據(jù);
敏感數(shù)據(jù)包括所有可能的數(shù)據(jù),包括整個數(shù)據(jù)庫中的所有數(shù)據(jù),雖然這樣的安全級別很少存在。你的工作就是定義為敏感數(shù)據(jù)并進行保護。
你選擇的認證模式和建立的注冊將通過限制哪些用戶可以進入到數(shù)據(jù)庫而實施第一步安全步驟。
第二步就要列舉可以訪問數(shù)據(jù)庫的所有用戶,然后決定所有數(shù)據(jù)是否對所有的用戶都適用。通常,你需要對一些數(shù)據(jù)進行保護,比如工資或者其他私人數(shù)據(jù)。這就意味著只有特定的用戶可以訪問和查看數(shù)據(jù)。你還可以設置哪些用戶更改數(shù)據(jù)。
始終記住的一條規(guī)則是“最小權利”概念。如果有人在他的工作中不需要訪問數(shù)據(jù),那即不要給他訪問的權限。應該避免所有的用戶都具有sa用戶的訪問權限。
具體的建議
當進行安全設置的時候,經驗也是一個很好的老師,但通常也會有適用于通用數(shù)據(jù)庫的設計準則
從開始就獲得數(shù)據(jù)庫和對象的所有權。當建立一個新的數(shù)據(jù)庫時,你將會成為數(shù)據(jù)庫的所有者,并能夠設置數(shù)據(jù)庫中所有發(fā)生一切。你可以以管理者的身份注冊數(shù)據(jù)庫。然而,對象的所有權屬于建立對象的用戶。雖然這可能造成所有權的轉移,但可以確定這些的注冊能夠被用于建立所有的對象。
理解所有權鏈。這一安全特性防止用戶建立自己的視而偷看一些敏感數(shù)據(jù)。例如,假設你建立一個從兩個表中集中的數(shù)據(jù)的視,如果你是這兩個表的所有者,當你允許其他用戶使用視的許可時,SQL Server不會檢查表的有關許可。
使用視和存儲程序以分配給用戶訪問數(shù)據(jù)的權利,而不是讓用戶編寫一些直接訪問表格的特別查詢語句。通過這種方式,你無需在表格中將訪問權利分配給用戶。視和存儲程序
也可以限制查看的數(shù)據(jù)。例如,如果你的雇員表格包含一些秘密的工資信息,你可以建立一個省略了工資欄的視。
如果用戶從特定程序中進入你的程序,你可以建立程序任務。一個程序任務就是分配到特定程序的用戶,并給予用戶的有關許可。使用程序任務,用戶不能直接地認證數(shù)據(jù)庫,相反,他們先認證他們自己的程序,這就決定哪些程序任務與服務器相連接。
時刻注意程序補丁。不可否認的,程序補丁是一些訣竅的集合。程序的發(fā)布,更新等都會引入新的問題,使用程序補丁是防止外界干擾和保護數(shù)據(jù)的最好和最容易的方法??梢栽L問微軟主頁上的SQL Service Pack下載頁,查看當前最新的程序補丁。
如何保證SQLServer數(shù)據(jù)庫安全
目前,針對SQL Server數(shù)據(jù)庫的應用級入侵已經變得越來越肆無忌憚,像SQL注入、跨站點腳本攻擊和未經授權的用戶訪問等。所有這些入侵都有可能繞過前臺安全系統(tǒng)并對數(shù)據(jù)庫系統(tǒng)攻擊。對于數(shù)據(jù)庫管理來說,保護數(shù)據(jù)不受內部和外部侵害是一項重要的工作。SQL Server 正日益廣泛的使用于各部門內外,作為數(shù)據(jù)庫系統(tǒng)管理員,需要深入的理解SQL Server的安全性控制策略,以實現(xiàn)管理安全性的目標。那么,如何確保SQL Server數(shù)據(jù)庫的安全性呢,我們可以從以下兩方面考慮。it培訓機構
首先、采取業(yè)界已存在的且比較成熟的數(shù)據(jù)庫審計解決方案來實現(xiàn)
實時記錄用戶對數(shù)據(jù)庫系統(tǒng)的所有操作(如:插入、刪除、更新、用戶自定義操作等),并還原SQL操作命令包括源IP地址、目的IP地址、訪問時間、用戶名、數(shù)據(jù)庫操作類型、數(shù)據(jù)庫表名、字段名等,如此,可實現(xiàn)對數(shù)據(jù)庫安全事件準確全程跟蹤定位。
實時檢查數(shù)據(jù)庫不安全配置、數(shù)據(jù)庫潛在弱點、數(shù)據(jù)庫用戶弱口令、數(shù)據(jù)庫軟件補丁層次、數(shù)據(jù)庫潛藏木馬等。
進行全方位的多層(應用層、中間層、數(shù)據(jù)庫層)的訪問審計,通過多層業(yè)務審計,實現(xiàn)數(shù)據(jù)操作原始訪問者的精確定位。
針對于數(shù)據(jù)庫的操作行為進行實時檢測,并預設置風險控制策略,結合對數(shù)據(jù)庫活動的實時監(jiān)控信息,進行特征檢測,任何嘗試性的攻擊操作都將被檢測到并進行阻斷或告警;并支持通過郵件、短信、SYSLOG、SNMP、屏幕等方式告警。
其次、制定相關的數(shù)據(jù)庫管理流程
不同的人員對數(shù)據(jù)庫的操作職責不一樣,所有人員對數(shù)據(jù)庫的操作均需要事前審批,對一些非常重要的操作需要二級以上審批。申請操作時,需明確在什么人,什么時間,因為何事,對哪個數(shù)據(jù)庫(或表),進行什么樣的操作,可能有什么樣的風險及采取的補救措施等。
數(shù)據(jù)庫數(shù)據(jù)的丟失以及數(shù)據(jù)庫被非法用戶的侵入使得數(shù)據(jù)庫管理員身心疲憊不堪,數(shù)據(jù)庫安全性問題對于數(shù)據(jù)庫管理員來說簡直就是噩夢。對于數(shù)據(jù)庫數(shù)據(jù)的安全問題。本文對圍繞數(shù)據(jù)庫的安全性問題提出了一些安全性策略,希望對數(shù)據(jù)庫管理員有所幫助。
分享文章:sqlserver安全,SQLServer安全管理可分為3個層次
網址分享:http://fisionsoft.com.cn/article/phgjoi.html