在SQL SERVER 2005執(zhí)行存儲過程的權限分配問題
在SQL SERVER 2005數(shù)據(jù)庫中,為了提高數(shù)據(jù)庫的安全性,當執(zhí)行某些存儲過程的時候,我們需要設置一些權限來避免一些危險性的操作造成數(shù)據(jù)庫的損壞和數(shù)據(jù)的丟失等。本文從以下幾個方面分別說明。
1.關于權限設置
一個庫,一個連接帳號和密碼,比如zhuzhu這個庫,只給PUBLIC權限。SA帳號基本是不使用的.因為SA實在是太危險了.PUBLIC權限足夠用了。
2.安裝防火墻
如果只是在本機調試系統(tǒng),因為SQL有些人沒打補丁會被溢出,安裝防火墻是非常好的選擇,這樣即使有漏洞別人也無法攻擊。
3.改變端口
如果SQL Server數(shù)據(jù)庫需要遠程訪問,端口一定是要開放的,即使安裝了防火墻,也要將SQL Server的服務端口1433放開,針對SQL Server的攻擊工具主要掃描的是1433端口,可以改變默認端口,這樣雖然不能從根本上解決問題,但可以對付一般的掃描,改變端口最簡單的辦法是在打開“開始”——〉“所有程序”——〉“Microsoft SQL Server” ——〉“服務器網(wǎng)絡實用工具”,在界面中選中“TCP/IP”,點擊“屬性”,把1433改為不超過65535的一個數(shù),重啟SQL Server服務,這樣默認端口就改了,注意這時你遠程連接SQL Server時IP地址后要加改過的端口號。
4.刪除不需要的擴展存儲過程
如果你的系統(tǒng)中確實不需要這些擴展存儲過程可以刪除。
刪除存儲過程的命令是:EXEC sp_dropextendedproc ‘存儲過程的名稱’
主要有一下這些:
- exec sp_dropextendedproc ’xp_cmdshell’
- exec sp_dropextendedproc ’xp_dirtree’
- exec sp_dropextendedproc ’xp_enumgroups’
- exec sp_dropextendedproc ’xp_fixeddrives’
- exec sp_dropextendedproc ’xp_loginconfig’
- exec sp_dropextendedproc ’xp_enumerrorlogs’
- exec sp_dropextendedproc ’xp_getfiledetails’
- exec sp_dropextendedproc ’Sp_OAcreate’
- exec sp_dropextendedproc ’Sp_OADestroy’
- exec sp_dropextendedproc ’Sp_OAGetErrorInfo’
- exec sp_dropextendedproc ’Sp_OAGetProperty’
- exec sp_dropextendedproc ’Sp_OAMethod’
- exec sp_dropextendedproc ’Sp_OASetProperty’
- exec sp_dropextendedproc ’Sp_OAStop’
- exec sp_dropextendedproc ’Xp_regaddmultistring’
- exec sp_dropextendedproc ’Xp_regdeletekey’
- exec sp_dropextendedproc ’Xp_regdeletevalue’
- exec sp_dropextendedproc ’Xp_regenumvalues’
- exec sp_dropextendedproc ’Xp_regread’
- exec sp_dropextendedproc ’Xp_regremovemultistring’
- exec sp_dropextendedproc ’Xp_regwrite’
- drop procedure sp_makewebtask
要恢復該存儲過程,命令是:EXEC sp_addextendedproc存儲過程的名稱 ,@dllname ='存儲過程的dll'。
例如:恢復存儲過程xp_cmdshell,EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll',注意,恢復時如果xplog70.dll已刪除需要copy一個。
關于SQL SERVER 2005數(shù)據(jù)庫執(zhí)行存儲過程的權限問題就介紹到這里,謝謝大家的支持!
【編輯推薦】