IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)MSSQL → 保護(hù)SQL服務(wù)器的安全 用戶識(shí)別問(wèn)題

保護(hù)SQL服務(wù)器的安全 用戶識(shí)別問(wèn)題

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

在我們關(guān)于SQL服務(wù)器安全系列的這文章里,我們的目標(biāo)是向你提供安全安裝SQL服務(wù)器所需要的工具和信心,這樣的話,你有價(jià)值的數(shù)據(jù)就會(huì)受到保護(hù),避免無(wú)意或者有意的破壞或者竊取。在本文里,我們會(huì)深入一些基礎(chǔ)的概念,在保護(hù)數(shù)據(jù)庫(kù)安全的時(shí)候,你需要利用下面這些概念:登錄、用戶、角色,以及組。確定誰(shuí)在請(qǐng)求訪問(wèn)數(shù)據(jù)或者SQL服務(wù)器里其他信息等看上去很簡(jiǎn)單的過(guò)程,都需要用到所有這些概念。

登錄

登錄規(guī)定了哪些用戶能夠連接到安裝好的SQL服務(wù)器上——這不是某個(gè)特定的數(shù)據(jù)庫(kù),而是而是整個(gè)服務(wù)器。登錄有兩種不同的形式:

Windows集成的登錄,它會(huì)授權(quán)特定的Windows用戶或者組使用它們的Windows信任書進(jìn)行連接。

SQL服務(wù)器登錄,它會(huì)授權(quán)用戶使用由SQL服務(wù)器保存的用戶名和密碼進(jìn)行連接。

你應(yīng)該使用哪一種?

Windows集成登錄肯定要比SQL服務(wù)器登錄更加高效和更方便,因?yàn)橛脩糁恍枰卿浺淮巍诰W(wǎng)絡(luò)這一層。單獨(dú)登錄到服務(wù)器是沒(méi)有必要的,因?yàn)镾QL服務(wù)器會(huì)自動(dòng)地處理(在后臺(tái))Windows登錄,從而允許到服務(wù)器的訪問(wèn)。只有在服務(wù)器運(yùn)行在Windows NT或者2000上的時(shí)候,對(duì)Windows登錄的支持才有效;安裝在Windows 98上的服務(wù)器必須要依賴SQL服務(wù)器登錄。如果你正在運(yùn)行Windows 2000,而且最終需要支持原有的應(yīng)用程序,那么就要記住,SQL服務(wù)器登錄只有在混合模式下才可用。

設(shè)計(jì)上的考慮

在設(shè)計(jì)自己數(shù)據(jù)庫(kù)的時(shí)候,你需要考慮登錄的方法——而且要在你真正開(kāi)始保證最終產(chǎn)品的安全之前。你應(yīng)該知道服務(wù)器使用的是哪種授權(quán)方式。那些還在Window 98上使用服務(wù)器的人可能現(xiàn)在就要考慮升級(jí),如果安全是一個(gè)很重要的問(wèn)題的話;那樣的話,他們就可以使用Windows集成的安全(策略)。

另外一個(gè)設(shè)計(jì)問(wèn)題是知道誰(shuí)擁有訪問(wèn)權(quán),他們能夠訪問(wèn)什么數(shù)據(jù),以及他們是否能夠?qū)?duì)象和數(shù)據(jù)進(jìn)行更改。你不用真的列出其名字;你只需要利用工具有效地幫助用戶就行了。最后,你應(yīng)該使用系統(tǒng)的存儲(chǔ)過(guò)程來(lái)管理安全。SQL服務(wù)器提供了兩種存儲(chǔ)過(guò)程,用于登錄的管理:

◆sp_addlogi——在使用SQL服務(wù)器驗(yàn)證保護(hù)你服務(wù)器安全的時(shí)候要使用這個(gè)存儲(chǔ)過(guò)程。具體的說(shuō),這個(gè)存儲(chǔ)過(guò)程會(huì)創(chuàng)建一個(gè)新的SQL服務(wù)器登錄,它允許用戶使用SQL服務(wù)器驗(yàn)證連接到SQL服務(wù)器的實(shí)例上。

◆sp_grantlogin——這個(gè)存儲(chǔ)過(guò)程允許Windows 2000的用戶或者組帳號(hào)使用Windows驗(yàn)證連接到微軟的SQL服務(wù)器上。

只有sysadmin或者securityadmin固有服務(wù)器角色的成員能夠執(zhí)行這兩個(gè)存儲(chǔ)過(guò)程。

什么是系統(tǒng)存儲(chǔ)過(guò)程?

系統(tǒng)存儲(chǔ)過(guò)程是一個(gè)內(nèi)置的存儲(chǔ)過(guò)程,它能夠幫助你管理服務(wù)器。你可以在MSDN庫(kù)里找到一長(zhǎng)串的系統(tǒng)存儲(chǔ)過(guò)程。SQL服務(wù)器文獻(xiàn)在線囊括了每個(gè)系統(tǒng)存儲(chǔ)過(guò)程的所有句法細(xì)節(jié)和使用示例。

用戶

登錄屬于服務(wù)器,而用戶則屬于數(shù)據(jù)庫(kù)。用戶ID會(huì)識(shí)別特定數(shù)據(jù)庫(kù)的特定用戶。而且,用戶對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是專門的——也就是說(shuō),Northwind數(shù)據(jù)庫(kù)里Fred這個(gè)用戶同公共數(shù)據(jù)庫(kù)里Fred那個(gè)用戶是不同的,盡管這兩個(gè)Fred可能和同一個(gè)登錄相關(guān)聯(lián)。

當(dāng)你在數(shù)據(jù)庫(kù)里創(chuàng)建一個(gè)用戶的時(shí)候,你就將一個(gè)特定的登錄同這個(gè)用戶關(guān)聯(lián)起來(lái)了。對(duì)于這個(gè)數(shù)據(jù)庫(kù)而言,登錄具有這個(gè)用戶的權(quán)限。盡管登錄所用的ID不需要和用戶ID相同,但是在通常情況下,如果你保持這樣的慣例,那么事情就會(huì)更少讓人糊涂。如果登錄在數(shù)據(jù)庫(kù)里沒(méi)有相關(guān)聯(lián)的用戶,那么用戶能夠通過(guò)特殊的來(lái)賓用戶帳號(hào)連接到該數(shù)據(jù)庫(kù)。

特殊用戶

所有的用戶都不是數(shù)據(jù)庫(kù)里的常住人口,而且不能保證用戶帳號(hào)就是他們自己的。在希望用戶臨時(shí)訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候,你可以使用來(lái)賓用戶帳號(hào),它可以不使用常規(guī)的用戶帳號(hào)而登錄訪問(wèn)服務(wù)器。來(lái)賓用戶的登錄必須擁有訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限,而且數(shù)據(jù)庫(kù)必須設(shè)有來(lái)賓用戶帳號(hào)。一旦進(jìn)了數(shù)據(jù)庫(kù),來(lái)賓用戶會(huì)被限制到只能進(jìn)行來(lái)賓用戶帳號(hào)所指定的活動(dòng)。但是,來(lái)賓用戶帳號(hào)在一個(gè)剛剛創(chuàng)建的數(shù)據(jù)庫(kù)里不是缺省就存在的;(數(shù)據(jù)庫(kù)的)所有者或者系統(tǒng)管理員必須創(chuàng)建這樣一個(gè)帳號(hào)。

除了來(lái)賓用戶,你還需要考慮數(shù)據(jù)庫(kù)的所有者(DBO)。他是創(chuàng)建數(shù)據(jù)庫(kù)的用戶。數(shù)據(jù)庫(kù)的所有者或者系統(tǒng)管理員必須賦予(其他人)權(quán)限,才能讓他們?cè)跀?shù)據(jù)庫(kù)創(chuàng)建其它的對(duì)象。

為了向數(shù)據(jù)庫(kù)里添加數(shù)據(jù),你要運(yùn)行sp_grantdbaccess。這個(gè)存儲(chǔ)過(guò)程會(huì)在數(shù)據(jù)庫(kù)里創(chuàng)建一個(gè)和指定登錄相對(duì)應(yīng)的用戶。只有sysadmin固有服務(wù)器角色、db_accessadmin角色,以及db_owner固有服務(wù)器角色的成員才能夠執(zhí)行sp_grantdbaccess。

角色

角色讓你將用戶集中到一起,以利于更簡(jiǎn)單的管理。就像用戶一樣,角色也是數(shù)據(jù)庫(kù)的對(duì)象。例如,你可以在自己的采購(gòu)數(shù)據(jù)庫(kù)里定義一個(gè)"銷售"角色,并讓所有的產(chǎn)品所有銷售人員都成為這個(gè)角色的成員。如果你隨后賦予這個(gè)"銷售"角色許可,那么這些許可會(huì)自動(dòng)地應(yīng)用于該角色的所有成員上。此外,一個(gè)用戶可以是多個(gè)角色的成員。

有三種類型的角色:

◆公共——這個(gè)角色會(huì)為所有的用戶設(shè)置缺省的基本許可,所有的用戶都會(huì)被分配公共角色。

◆服務(wù)器——服務(wù)器角色適用于整個(gè)服務(wù)器。

◆數(shù)據(jù)庫(kù)——這些角色適用于專門的數(shù)據(jù)庫(kù)。

服務(wù)器和數(shù)據(jù)庫(kù)角色都有預(yù)先定義的類別,我們把它們列在表格A里。

?表格 A

角色的分配

有一些系統(tǒng)存儲(chǔ)過(guò)程是用于向數(shù)據(jù)庫(kù)添加角色和成員的。使用sp_addrole可以在數(shù)據(jù)庫(kù)里創(chuàng)建一個(gè)新的角色。然后,運(yùn)行sp_addrolemember向角色添加用戶帳號(hào)。你不能創(chuàng)建固有的服務(wù)器角色;你只能夠在服務(wù)器這一層添加角色。只有sysadmin固有服務(wù)器角色、db_securityadmin角色,以及db_owner固有數(shù)據(jù)庫(kù)角色的成員才能夠執(zhí)行sp_addrole或者sp_addrolemember。

組向你提供了批量管理安全的第二種方式,而不需要一個(gè)用戶一個(gè)用戶地來(lái)管理。在SQL服務(wù)器里并不存在組。它們由操作系統(tǒng)來(lái)維護(hù)。組的使用可以讓你把SQL服務(wù)器的安全策略和整個(gè)企業(yè)的安全策略綁在一起。

例如,如果你有一個(gè)叫做"銷售"的Windows 2000組,它包含著你所有的銷售人員,你可以在SQL服務(wù)器里專門為這個(gè)組創(chuàng)建一個(gè)Windows登錄。這個(gè)"銷售"組的任何成員都會(huì)作為指定的登錄連接到SQL數(shù)據(jù)庫(kù)上(除非他們有自己?jiǎn)为?dú)的優(yōu)先登錄)。你可以進(jìn)一步將這個(gè)登錄同任何數(shù)據(jù)庫(kù)里的用戶相關(guān)聯(lián),然后賦予該用戶許可。組的任何成員都會(huì)在他們使用數(shù)據(jù)庫(kù)的時(shí)候獲得指定的許可。

管理策略

用戶管理的主要目標(biāo)是雙重的。首先,你希望確保只有那些能夠獲得數(shù)據(jù)的用戶是真正需要使用數(shù)據(jù)的人。其次,你應(yīng)該盡力將用于用戶管理的精力降到最小。繁雜的策略要比直接的策略更少被人采用,否則就會(huì)導(dǎo)致安全的極大破壞。下面是你在用戶管理中可以采納的一些簡(jiǎn)單指導(dǎo)方針:

在可能的情況下,盡量使用Windows集成安全。這會(huì)降低密碼維護(hù)和用戶創(chuàng)建所要的花費(fèi)精力。它還會(huì)讓SQL服務(wù)器將登錄信息傳遞給已連接的服務(wù)器,這在分布式數(shù)據(jù)庫(kù)里很重要。

在可能的情況下,盡量在聚合這一層管理安全。不應(yīng)該為每個(gè)必須訪問(wèn)你數(shù)據(jù)的單個(gè)人創(chuàng)建用戶,而應(yīng)該創(chuàng)建像"銷售"或者DataEntryUsers這樣的角色。然后你就可以通過(guò)添加和刪除角色的用戶來(lái)控制訪問(wèn),同時(shí)向角色分配許可。另外,你也可以在Windows層管理組成員,并向代表整個(gè)Windows組的用戶分配許可。

來(lái)賓用戶很危險(xiǎn),因?yàn)樗鼤?huì)給你服務(wù)器上每個(gè)的登錄都賦予訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限。不要在數(shù)據(jù)庫(kù)里創(chuàng)建來(lái)賓用戶,除非它要對(duì)所有的人都開(kāi)放。

基本內(nèi)容

本篇文章里所討論的概念都是實(shí)現(xiàn)你SQL服務(wù)器安全的基本要素,它們一點(diǎn)也不簡(jiǎn)單。理解每個(gè)登錄的工作方式離你確定自己整個(gè)(安全)策略還有很長(zhǎng)的路要走。

關(guān)鍵詞標(biāo)簽:SQL服務(wù)器

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系

相關(guān)下載

    人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法