- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
SQL Server有很多很好用的小功能,但是有时候这些功能反过来给你制造麻烦。其中一个这样的问题是别名用户的使用。本技巧教你如何在数据库中建立别名用户时找到安全漏洞,不过在SQL Server 2008种不推荐这个功能。
首先,你可以对每个数据库运行下面的简单查询或者针对所有数据库操作它来运行以便找到带有“dbo”访问权限的用户。
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”访问权限的用户,因为SQL Server 中的一个安全漏洞。让我来解释这个问题。
让我们创建两个登录,AliasUser1和DBUser1.
别名AliasUser1分配给“dbo”角色。
把用户DBUser1添加到角色“dbo”中,如果我们需要把“dbo”权限授给一个数据库用户,那么这是一种很正常的行为。
下面的脚本将为我们做这些动作:
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
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |