當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 遼寧OA系統(tǒng) > 沈陽OA系統(tǒng) > 沈陽OA行業(yè)資訊
在SQL Server中使用別名用戶的安全問題
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
文章來源:泛普軟件SQL Server有很多很好用的小功能,但是有時(shí)候這些功能反過來給你制造麻煩。其中一個(gè)這樣的問題是別名用戶的使用。本技巧教你如何在數(shù)據(jù)庫中建立別名用戶時(shí)找到安全漏洞,不過在SQL Server 2008種不推薦這個(gè)功能。
首先,你可以對(duì)每個(gè)數(shù)據(jù)庫運(yùn)行下面的簡(jiǎn)單查詢或者針對(duì)所有數(shù)據(jù)庫操作它來運(yùn)行以便找到帶有“dbo”訪問權(quán)限的用戶。
SELECT DISTINCT DB_NAME() DATABASE_NAME,
SU.NAME DATABASE_USERNAME
FROM SYSUSERS SU
JOIN SYSMEMBERS SM
ON SM.MEMBERUID = SU.UID
INNER JOIN SYSMEMBERS SM1
ON SM.MEMBERUID = SM1.MEMBERUID
INNER JOIN SYSUSERS SU1
ON SM1.GROUPUID = SU1.UID
AND SU1.NAME = 'db_owner'
AND SU.NAME <> 'dbo'
但是,此查詢可能不能找到所有具有“dbo”訪問權(quán)限的用戶,因?yàn)镾QL Server 中的一個(gè)安全漏洞。讓我來解釋這個(gè)問題。
讓我們創(chuàng)建兩個(gè)登錄,AliasUser1和DBUser1.
別名AliasUser1分配給“dbo”角色。
把用戶DBUser1添加到角色“dbo”中,如果我們需要把“dbo”權(quán)限授給一個(gè)數(shù)據(jù)庫用戶,那么這是一種很正常的行為。
下面的腳本將為我們做這些動(dòng)作:
IF NOT EXISTS (SELECT *
FROM SYS.SERVER_PRINCIPALS
WHERE NAME = N'AliasUser1‘)
CREATE LOGIN [AliasUser1]
WITH PASSWORD=N'test', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
IF NOT EXISTS (SELECT *
FROM SYS.SERVER_PRINCIPALS
WHERE NAME = N'DBUser1’)
CREATE LOGIN [DBUser1]
WITH PASSWORD=N'test', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
--add a aliased user with dbo priveleges
exec sp_addalias 'AliasUser1','dbo'
--add a regular db user to the dbo role
CREATE USER [DBUser1] FOR LOGIN [DBUser1]
現(xiàn)在,讓我們從SSMS中檢驗(yàn)我們剛創(chuàng)建的用戶。注意,我們別名到“dbo”中的“AliasUser1”沒有在用戶下面出現(xiàn)。SQL Server沒有在“用戶”列表中顯示別名用戶。
圖一 SSMS中的數(shù)據(jù)庫用戶
那么我們要如何找到一個(gè)數(shù)據(jù)庫中的別名用戶呢?執(zhí)行下面的查詢:
select * from sys.sysusers
在下面的結(jié)果集中,我們看到“AliasUser1”前面有一個(gè)“”,如果我們檢查字段“isaliased”,在右邊的第三個(gè)字段,那么它有一個(gè)為1的值。
圖二 圖三 sys.sysusers
下面的命令也能運(yùn)行來顯示所有的用戶和別名。在下面的輸出結(jié)果中,你可以看到別名用戶“AliasUser1”沒有作為一個(gè)用戶出現(xiàn),但是在第二個(gè)結(jié)果集中它作為一個(gè)別名用戶出現(xiàn)。
exec sp_helpuser
圖四 sp_helpuser
另一個(gè)需要注意的有趣之處是,你不能使用sp_dropuser存儲(chǔ)過程來刪除一個(gè)別名用戶,相反,要使用sp_dropalias來刪除。
通過一個(gè)登錄使用一個(gè)到“dbo”的別名,這將讓你完全訪問自己的數(shù)據(jù)庫,例如一個(gè)db_owner.不足之處是在SSMS中沒有一個(gè)地方可以看到這個(gè)過程。你可以自己嘗試。在其中一個(gè)你自己數(shù)據(jù)庫中按照下面的步驟,然后使用登錄“AliasUser1”和密碼“test”,你可以看到該登錄可以在你創(chuàng)建別名的數(shù)據(jù)庫中進(jìn)行任何它想要的行為。
下一步驟
針對(duì)你的數(shù)據(jù)庫運(yùn)行sp_helpuser,看看你是否建立了別名。
如果有別名用戶具有“dbo”級(jí)別的權(quán)限,那么看看刪除這些并使用下面所述的角色。
這個(gè)別名功能被微軟阻止了很長一段時(shí)間,但是它仍然在2005中使用。我認(rèn)為這是基于向后兼容的考慮。該功能在SQL 2008中取消了。
因此,如果你的應(yīng)用程序正在使用別名,而它在SQL 2008中不能使用,那么使用上面提到的不同方法試試。(IT專家網(wǎng))
- 1中小企業(yè)數(shù)據(jù)加密部署的最佳做法
- 2數(shù)據(jù)中心纜線防火需求與標(biāo)準(zhǔn)盤點(diǎn)
- 3克服企業(yè)信息化管理軟件CRM的缺點(diǎn)
- 4IPv6下一代互聯(lián)網(wǎng):從網(wǎng)絡(luò)到網(wǎng)格
- 5制定綠色I(xiàn)T策略應(yīng)該考慮的四個(gè)方面
- 6SNS社交類網(wǎng)站:?jiǎn)T工很癡迷很老板很為難
- 7泛普OA基于設(shè)計(jì)院平臺(tái),國內(nèi)絕無僅有
- 8IDC:數(shù)據(jù)保護(hù)工作需應(yīng)對(duì)五大挑戰(zhàn)
- 9降低服務(wù)器虛擬化的四大安全風(fēng)險(xiǎn)
- 10企業(yè)信息化:傳統(tǒng)軟件和Saas選那個(gè)?
- 11股份公司OA辦公系統(tǒng)證照管理和會(huì)議管理實(shí)施功能簡(jiǎn)介
- 12信息安全:“泄密門”如何避免?
- 13信息安全法規(guī)與倫理道德調(diào)查
- 14OA辦公系統(tǒng)流程審批自由流程解析
- 15SOA市場(chǎng)進(jìn)入縱深發(fā)展的階段
- 16SAS 下一代存儲(chǔ)技術(shù)的新寵
- 17充分利用SSD需要系統(tǒng)架構(gòu)的哪些支持?
- 18中小企業(yè)已成云存儲(chǔ)服務(wù)最大用戶群
- 19如何才能加快電子發(fā)現(xiàn)的速度
- 20開源云計(jì)算:新一代商業(yè)與技術(shù)潮流
- 21虛擬化技術(shù)先進(jìn)的背后并非完美無缺
- 22對(duì)云計(jì)算架構(gòu)模型的深度分析
- 23維護(hù)企業(yè)WLC控制器需要選擇合適端口
- 24虛擬化技術(shù)在5個(gè)層面的應(yīng)用
- 25企業(yè)接受虛擬化 云計(jì)算最受關(guān)注
- 26OA辦公系統(tǒng)未來是簡(jiǎn)單好,還是全副武裝好
- 27沈陽OA軟件解決方案帶給客戶的價(jià)值?
- 28虛擬化用于IDC機(jī)房,只是十全九美
- 29澄清云計(jì)算概念 解析云計(jì)算現(xiàn)狀
- 30中小企業(yè)如何選擇Linux備份工具?
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓