日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

建立一個安全的MSSQL SERVER的啟動賬號

 intruder 2005-12-16
建立一個安全的MSSQL SERVER的啟動賬號


SQL SERVER的安全問題一直是困擾DBA的一個難題,作為開發(fā)者和用戶希望自己的權(quán)限越大越好,最好是SA,而作為DBA希望所有的用戶權(quán)限越小越好,這總是一對矛盾。一般來說,我們會考慮采用WINDOWS驗證模式,建立安全的用戶權(quán)限,改變SQL SERVER TCP/IP的默認端口...等安全措施,但很多DBA還是忽略了MSSQL SERVER服務的啟動賬號,這也是一個非常值得重點關注的問題。特別是MSSQL SERVER提供了許多操作系統(tǒng)和注冊表擴展存儲過程,比如:xp_cmdshell, xp_regdeletekey, xp_regdeletevalue 等等。



我們先來回顧一下MSSQL SERVER執(zhí)行這些擴展存儲過程的步驟。MS SQL SERVER提供的擴展存儲過程使你可以向T-SQL一樣調(diào)用一些動態(tài)鏈接庫的內(nèi)部函數(shù)邏輯,而且這些擴展存儲過程可以包括WIN32和COM的大多數(shù)功能。

當關系數(shù)據(jù)庫引擎確定 Transact-SQL 語句引用擴展存儲過程時:

關系數(shù)據(jù)庫引擎將擴展存儲過程請求傳遞到開放式數(shù)據(jù)服務層。
然后開放式數(shù)據(jù)服務將包含擴展存儲過程函數(shù)的 DLL 裝載到 SQL Server 2000 地址空間(如果還沒有裝載)。
開放式數(shù)據(jù)服務將請求傳遞到擴展存儲過程。
開放式數(shù)據(jù)服務將操作結(jié)果傳遞到數(shù)據(jù)庫引擎。
uploads/200511/07_163232_sql.gif

[quote[從上圖中我們可以清楚的看到SQL Server 2000的數(shù)據(jù)庫引擎通過擴展存儲過程和Windows Resources進行交互。而擴展存儲過程可以完成處理操作系統(tǒng)任務的關鍵是要有一個自己的身份SID,這個SID就來自MSSQL SERVER服務啟動賬號。所以如果這個MSSQL SERVER服務啟動賬號是administrators組的用戶,我們就可以通過這些擴展存儲過程做任意想做的事情:刪除系統(tǒng)信息,破壞注冊表等等。如果我們限制MSSQL SERVER服務啟動賬號的權(quán)限,這樣即使“黑客”或懷有惡意的開發(fā)人員獲得數(shù)據(jù)庫的管理員權(quán)限,也不會對操作系統(tǒng)造成很大的影響。只要有數(shù)據(jù)庫的備份我們可以非常方便的恢復數(shù)據(jù)庫,而不要重新安裝系統(tǒng)。所以為了更安全的保護我們的系統(tǒng),我們希望MSSQL SERVER服務啟動賬號的權(quán)限越低越好。

作為系統(tǒng)的一個服務,啟動MSSQL SERVER 2000服務的用戶賬號也需要一些必要的權(quán)限,下面我們就通過一個具體的實例來解釋這些權(quán)限(本實例只針對成員服務器,如果是DC和啟動了活動目錄Active Directory還需要其它的配置):[/quote]1. 通過本地用戶管理,建立一個本地用戶sqlserver,密碼:123456;//最好換個難猜的用戶名并且設強密碼...不要純數(shù)字,易被嗅探及破解.

2. 如果現(xiàn)在就我們打開SERVICES配置通過該用戶啟動,系統(tǒng)會報錯誤:

Source:Service Control Manager
Event ID:7000
Description:
The %service% service failed to start due to the following error:
The service did not start due to a logon failure.
No Data will be available.

這是因為作為一個普通用戶是無法啟動服務的,我們需要給sqlserver用戶分配必要的權(quán)限。

SQL Server服務啟動賬號必須有3個基本權(quán)限:
    數(shù)據(jù)庫本地目錄的讀寫權(quán)限;
    啟動本地服務的權(quán)限;
    讀取注冊表的權(quán)限;
3. 賦予sqlserver用戶MSSQL目錄的讀寫權(quán)限;

因為我的SQL SERVER是安裝在D盤,所以我在權(quán)限管理中,將D:\PROGRMAM FILE\Microsoft SQL Server\MSSQL讀寫權(quán)限賦予sqlserver用戶。//最好不要裝在系統(tǒng)盤
uploads/200511/07_163744_sql.jpg

4. 分配sqlserver用戶啟動本地服務的權(quán)限;

這個比較復雜,我只舉例作為成員服務器的情況。
    l 啟動“Local Security Setting” MMC 管理單元。 //控制面板------>管理工具---->本地安全策略

    l 展開Local Policy,然后單擊User Rights Assignment。 //本地策略-------->用戶權(quán)限指派

    l 在右側(cè)窗格中,右鍵單擊Log on as Service,將用戶添加到該策略,然后單擊OK。 //作為服務登陸

    l 在右側(cè)窗格中,右鍵單擊Log on as a batch job,將用戶添加到該策略,然后單擊OK //作為批處理作業(yè)登陸

    l 在右側(cè)窗格中,右鍵單擊Locks pages in memory,將用戶添加到該策略,然后單擊OK //內(nèi)存中鎖定頁

    l 在右側(cè)窗格中,右鍵單擊Act as part of the operating systme,將用戶添加到該策略,然后單擊OK //以操作系統(tǒng)方式操作

    l 在右側(cè)窗格中,右鍵單擊Bypass traverse checking,將用戶添加到該策略,然后單擊OK //跳過遍歷檢查

    l 在右側(cè)窗格中,右鍵單擊Replace a process level token,將用戶添加到該策略,然后單擊OK //替換進程級記號

    l 關閉“Local Security Setting” MMC 管理單元。
如圖

uploads/200511/07_165752_sql.jpg

5. 重新啟動系統(tǒng),用sqlserver用戶登陸系統(tǒng);

6. 再重新啟動系統(tǒng),再用administrator用戶登陸,打開SERVICES管理工具,配置用該用戶啟動MSSQLSERVER服務;
uploads/200511/07_165829_sql.jpg


這樣我們就可以通過限制SQLSERVER用戶的權(quán)限來控制SQLSERVER擴展存儲過程的權(quán)限。現(xiàn)在sqlserver用戶只對D:\PROGRMAM FILE\Microsoft SQL Server\MSSQL目錄有寫的權(quán)限,這樣就降低了通過xp_cmdshell來刪除系統(tǒng)文件的風險。


通過收購(原文就是"收購",不太理解,個人認為是"注冊表")來配置是比較繁瑣的,幸運的是MS SQLSERVER已經(jīng)提供了這樣的工具來配置啟動啟動賬號,你可以通過SQLSERVER的企業(yè)管理器配置,入下圖:
uploads/200511/07_170111_sql.jpg

PS:注意,我是在win2003下面,在上面的圖我直接輸入新建的用戶sqlserver,最后會啟動不了.只有在這里的用戶寫機器名\用戶名,如win2003\sqlserver,這樣才可以正常啟動,你們也可以試試看是否和我一樣.
這樣SQL SERVER企業(yè)管理器會自動幫你配置好所有的必要條件。包括目錄的訪問權(quán)限,啟動服務的權(quán)限,訪問注冊表的權(quán)限等等。所以我們正確的配置順序是:

1. 建立用戶;

2. 在SQL SERVER企業(yè)管理器中配置該用戶啟動;

3. 在分配其它相應的權(quán)限(如果需要復制操作);

備注:

通過SQL Server企業(yè)管理器增加的服務啟動賬號,會在registry中增加很多信息,即使你更換用戶也不會刪除,所以在改變服務啟動賬號不要頻繁更換,這樣會增大registry的容量。同時要注意,只有屬于sysadmin角色的用戶才可以配置SQL Server服務的啟動賬號。

總結(jié):

構(gòu)建一個安全高效的SQLSERVER是多方面的,深入了解SQLSERVER的運行機制是基礎。我們不但要考慮數(shù)據(jù)庫用戶的安全,也要考慮SQLSERVER服務的安全性。

tip:
請確認 SQL Server 實例配置為使用 Windows 身份認證和 SQL Server 身份認證。為此,請確認在正在運行 SQL Server 的計算機上存在下列注冊表項。對于默認的 SQL Server 實例:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\LoginMode
對于 SQL Server 的命名實例:
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\\MSSQLServer\LoginMode
請確認已設置下列注冊表項的值:
身份認證類型 值
僅限于 Windows 身份認證 1
混合模式(SQL Server 身份認證和 Windows 身份認證) 2

注意:如果您對注冊表進行了任何更改,必須關閉并重新啟動 SQL Server 實例使更改生效。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多