sql安全性
Ⅰ 對於sql資料庫的安全性、完整性,我需要採用什麼方法來保證,
1.回滾,一組sql語句,當執行到一半時出錯,就回滾到這組數據的開頭,相當於沒執行,然後你返回錯誤給用戶錯誤的原因
2.鎖表,當這句語句執行時,其他語句不能幹擾,以免影響數據的正確性
具體每個語言都不一樣,你搜搜吧
Ⅱ 如何提高SQL Server的安全性控制
SQLServer2000的安全配置在進行SQLServer2000資料庫的安全配置之前,首先你必須對操作系統進行安全配置,保證你的操作系統處於安全狀態。然後對你要使用的操作資料庫軟體(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基於資料庫的WEB應用常出現的安全隱患,對於腳本主要是一個過濾問題,需要過濾一些類似,『;@/等字元,防止破壞者構造惡意的SQL語句。接著,安裝SQLServer2000後請打上補丁sp1,sp2以及最新的sp3,sp4。在做完上面三步基礎之後,我們再來討論SQLServer的安全配置。1、使用安全的密碼策略我們把密碼策略擺在所有安全配置的第一步,請注意,很多資料庫帳號的密碼過於簡單,這跟系統密碼過於簡單是一個道理。對於sa更應該注意,同時不要讓sa帳號的密碼寫於應用程序或者腳本中。健壯的密碼是安全的第一步!SQLServer2000安裝的時候,如果是使用混合模式,那麼就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。同時養成定期修改密碼的好習慣。資料庫管理員應該定期查看是否有不符合密碼要求的帳號。比如使用下面的SQL語句:UsemasterSelectname,、使用安全的帳號策略由於SQLServer不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在資料庫應用中使用sa帳號,只有當沒有其它方法登錄到SQLServer實例(例如,當其它系統管理員不可用或忘記了密碼)時才使用sa。建議資料庫管理員新建立個擁有與sa一樣許可權的超級用戶來管理資料庫。安全的帳號策略還包括不要讓管理員許可權的帳號泛濫。SQLServer的認證模式有Windows身份認證和混合身份認證兩種。如果資料庫管理員不希望操作系統管理員來通過操作系統登陸來接觸資料庫的話,可以在帳號管理中把系統帳號「BUILTIN\Administrators」刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有法來恢復了。很多主機使用資料庫應用只是用來做查詢、修改等簡單功能的,請根據實際需要分配帳號,並賦予僅僅能夠滿足應用要求和需要的許可權。比如,只要查詢功能的,那麼就使用一個簡單的public帳號能夠select就可以了。3、加強資料庫日誌的記錄審核資料庫登錄事件的「失敗和成功」,在實例屬性中選擇「安全性」,將其中的審核級別選定為全部,這樣在資料庫系統和操作系統日誌裡面,就詳細記錄了所有帳號的登錄事件。請定期查看SQLServer日誌檢查是否有可疑的登錄事件發生,或者使用DOS命令。findstr/C:"登錄"d:\MicrosoftSQLServer\MSSQL\LOG\*.*4、管理擴展存儲過程對存儲過程進行大手術,並且對帳號調用擴展存儲過程的許可權要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQLServer的這么多系統存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升許可權或進行破壞。如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:usemastersp_dropextendedproc'xp_cmdshell'xp_cmdshell是進入操作系統的最佳捷徑,是資料庫留給操作系統的一個大後門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。sp_addextendedproc'xp_cmdshell','xpsql70.dll'如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特徵不能使用),這些過程包括如下:Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetPropertySp_OAMethodSp_OASetPropertySp_OAStop去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,如下:Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvaluesXp_regreadXp_regremovemultistringXp_regwrite還有一些其他的擴展存儲過程,你也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對資料庫或應用程序的傷害。5、使用協議加密SQLServer2000使用的TabularDataStream協議來進行網路數據交換,如果不加密的話,所有的網路傳輸都是明文的,包括密碼、資料庫內容等等,這是一個很大的安全威脅。能被人在網路中截獲到他們需要的東西,包括資料庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協議,當然,你需要一個證書來支持。6、不要讓人隨便探測到你的TCP/IP埠默認情況下,SQLServer使用1433埠監聽,很多人都說SQLServer配置的時候要把這個埠改變,這樣別人就不能很容易地知道使用的什麼埠了。可惜,通過微軟未公開的1434埠的UDP探測可以很容易知道SQLServer使用的什麼TCP/IP埠了。不過微軟還是考慮到了這個問題,畢竟公開而且開放的埠會引起不必要的麻煩。在實例屬性中選擇TCP/IP協議的屬性。選擇隱藏SQLServer實例。如果隱藏了SQLServer實例,則將禁止對試圖枚舉網路上現有的SQLServer實例的客戶端所發出的廣播作出響應。這樣,別人就不能用1434來探測你的TCP/IP埠了(除非用PortScan)。7、修改TCP/IP使用的埠請在上一步配置的基礎上,更改原默認的1433埠。在實例屬性中選擇網路配置中的TCP/IP協議的屬性,將TCP/IP使用的默認埠變為其他埠.9、拒絕來自1434埠的探測由於1434埠探測沒有限制,能夠被別人探測到一些資料庫信息,而且還可能遭到DOS攻擊讓資料庫伺服器的CPU負荷增大,所以對Windows2000操作系統來說,在IPSec過濾拒絕掉1434埠的UDP通訊,可以盡可能地隱藏你的SQLServer。10、對網路連接進行IP限制SQLServer2000資料庫系統本身沒有提供網路連接的安全解決法,但是Windows2000提供了這樣的安全機制。使用操作系統自己的IPSec可以實現IP數據包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的埠連接,把來自網路上的安全威脅進行有效的控制。
Ⅲ 如何保證SQLServer資料庫安全
目前,針對SQL Server資料庫的應用級入侵已經變得越來越肆無忌憚,像SQL注入、跨站點腳本攻擊和未經授權的用戶訪問等。所有這些入侵都有可能繞過前台安全系統並對資料庫系統攻擊。對於資料庫管理來說,保護數據不受內部和外部侵害是一項重要的工作。SQL Server 正日益廣泛的使用於各部門內外,作為資料庫系統管理員,需要深入的理解SQL Server的安全性控制策略,以實現管理安全性的目標。那麼,如何確保SQL Server資料庫的安全性呢,我們可以從以下兩方面考慮。it培訓機構
首先、採取業界已存在的且比較成熟的資料庫審計解決方案來實現
實時記錄用戶對資料庫系統的所有操作(如:插入、刪除、更新、用戶自定義操作等),並還原SQL操作命令包括源IP地址、目的IP地址、訪問時間、用戶名、資料庫操作類型、資料庫表名、欄位名等,如此,可實現對資料庫安全事件准確全程跟蹤定位。
實時檢查資料庫不安全配置、資料庫潛在弱點、資料庫用戶弱口令、資料庫軟體補丁層次、資料庫潛藏木馬等。
進行全方位的多層(應用層、中間層、資料庫層)的訪問審計,通過多層業務審計,實現數據操作原始訪問者的精確定位。
針對於資料庫的操作行為進行實時檢測,並預設置風險控制策略,結合對資料庫活動的實時監控信息,進行特徵檢測,任何嘗試性的攻擊操作都將被檢測到並進行阻斷或告警;並支持通過郵件、簡訊、SYSLOG、SNMP、屏幕等方式告警。
其次、制定相關的資料庫管理流程
不同的人員對資料庫的操作職責不一樣,所有人員對資料庫的操作均需要事前審批,對一些非常重要的操作需要二級以上審批。申請操作時,需明確在什麼人,什麼時間,因為何事,對哪個資料庫(或表),進行什麼樣的操作,可能有什麼樣的風險及採取的補救措施等。
資料庫數據的丟失以及資料庫被非法用戶的侵入使得資料庫管理員身心疲憊不堪,資料庫安全性問題對於資料庫管理員來說簡直就是噩夢。對於資料庫數據的安全問題。本文對圍繞資料庫的安全性問題提出了一些安全性策略,希望對資料庫管理員有所幫助。
Ⅳ SQL的安全性
如果對方知道SA密碼,那是沒辦法的!
你可以修改SA密碼!
不然SA的密碼都知道了,這資料庫的控制權就是最高了!
不過修改了SA密碼,軟體客戶端應該要重新配置下,這個由於我沒用過用友軟體,所以不好意思,這里我就不清楚了!
Ⅳ SQL四個安全性等級
SQL的安全機制可以分為4個等級
客戶機操作系統的安全性
SQL Server的登錄安全性
資料庫的使用安全性
資料庫對象的使用安全性
Ⅵ 怎麼實現本地SQL的安全性
SQL Server 2000的安全配置在進行SQL Server 2000資料庫的安全配置之前,首先你必須對操作系統進行安全配置,保證你的操作系統處於安全狀態。然後對你要使用的操作資料庫軟體(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基於資料庫的WEB應用常出現的安全隱患,對於腳本主要是一個過濾問題,需要過濾一些類似 , 『 ; @ / 等字元,防止破壞者構造惡意的SQL語句。接著,安裝SQL Server2000後請打上補丁sp1,sp2以及最新的sp3,sp4。
在做完上面三步基礎之後,我們再來討論SQL Server的安全配置。
1、使用安全的密碼策略
我們把密碼策略擺在所有安全配置的第一步,請注意,很多資料庫帳號的密碼過於簡單,這跟系統密碼過於簡單是一個道理。對於sa更應該注意,同時不要讓sa帳號的密碼寫於應用程序或者腳本中。健壯的密碼是安全的第一步!SQL Server2000安裝的時候,如果是使用混合模式,那麼就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。同時養成定期修改密碼的好習慣。資料庫管理員應該定期查看是否有不符合密碼要求的帳號。
比如使用下面的SQL語句:
Use master
Select name,Password from syslogins where password is null
2、使用安全的帳號策略
由於SQL Server不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在資料庫應用中使用sa帳號,只有當沒有其它方法登錄到 SQL Server 實例(例如,當其它系統管理員不可用或忘記了密碼)時才使用 sa。建議資料庫管理員新建立個擁有與sa一樣許可權的超級用戶來管理資料庫。安全的帳號策略還包括不要讓管理員許可權的帳號泛濫。
SQL Server的認證模式有Windows身份認證和混合身份認證兩種。如果資料庫管理員不希望操作系統管理員來通過操作系統登陸來接觸資料庫的話,可以在帳號管理中把系統帳號「BUILTIN\Administrators」刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有辦法來恢復了。很多主機使用資料庫應用只是用來做查詢、修改等簡單功能的,請根據實際需要分配帳號,並賦予僅僅能夠滿足應用要求和需要的許可權。比如,只要查詢功能的,那麼就使用一個簡單的public帳號能夠select就可以了。
3、加強資料庫日誌的記錄
審核資料庫登錄事件的「失敗和成功」,在實例屬性中選擇「安全性」,將其中的審核級別選定為全部,這樣在資料庫系統和操作系統日誌裡面,就詳細記錄了所有帳號的登錄事件。請定期查看SQL Server日誌檢查是否有可疑的登錄事件發生,或者使用DOS命令。findstr /C:"登錄" d:\Microsoft SQL Server\MSSQL\LOG\*.*
4、管理擴展存儲過程
對存儲過程進行大手術,並且對帳號調用擴展存儲過程的許可權要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQL Server的這么多系統存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升許可權或進行破壞。如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:
use master
sp_dropextendedproc 'xp_cmdshell'
xp_cmdshell是進入操作系統的最佳捷徑,是資料庫留給操作系統的一個大後門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特徵不能使用),
這些過程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite
還有一些其他的擴展存儲過程,你也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對資料庫或應用程序的傷害。
5、使用協議加密
SQL Server 2000使用的Tabular Data Stream協議來進行網路數據交換,如果不加密的話,所有的網路傳輸都是明文的,包括密碼、資料庫內容等等,這是一個很大的安全威脅。能被人在網路中截獲到他們需要的東西,包括資料庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協議,當然,你需要一個證書來支持。
6、不要讓人隨便探測到你的TCP/IP埠
默認情況下,SQL Server使用1433埠監聽,很多人都說SQL Server配置的時候要把這個埠改變,這樣別人就不能很容易地知道使用的什麼埠了。可惜,通過微軟未公開的1434埠的UDP探測可以很容易知道SQL Server使用的什麼TCP/IP埠了。不過微軟還是考慮到了這個問題,畢竟公開而且開放的埠會引起不必要的麻煩。在實例屬性中選擇TCP/IP協議的屬性。選擇隱藏 SQL Server 實例。如果隱藏了 SQL Server 實例,則將禁止對試圖枚舉網路上現有的 SQL Server 實例的客戶端所發出的廣播作出響應。這樣,別人就不能用1434來探測你的TCP/IP埠了(除非用Port Scan)。
7、修改TCP/IP使用的埠
請在上一步配置的基礎上,更改原默認的1433埠。在實例屬性中選擇網路配置中的TCP/IP協議的屬性,將TCP/IP使用的默認埠變為其他埠.
9、拒絕來自1434埠的探測
由於1434埠探測沒有限制,能夠被別人探測到一些資料庫信息,而且還可能遭到DOS攻擊讓資料庫伺服器的CPU負荷增大,所以對Windows 2000操作系統來說,在IPSec過濾拒絕掉1434埠的UDP通訊,可以盡可能地隱藏你的SQL Server。
10、對網路連接進行IP限制
SQL Server 2000資料庫系統本身沒有提供網路連接的安全解決辦法,但是Windows 2000提供了這樣的安全機制。使用操作系統自己的IPSec可以實現IP數據包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的埠連接,把來自網路上的安全威脅進行有效的控制。