欢迎来到天天文库
浏览记录
ID:24890534
大小:52.00 KB
页数:4页
时间:2018-11-16
《在sqlserver中使用别名用户的安全问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在SQLServer中使用别名用户的安全问题>>教育资源库 SQLServer有很多很好用的小功能,但是有时候这些功能反过来给你制造麻烦。其中一个这样的问题是别名用户的使用。本技巧教你如何在数据库中建立别名用户时找到安全漏洞,不过在SQLServer2008种不推荐这个功能。 首先,你可以对每个数据库运行下面的简单查询或者针对所有数据库操作它来运行以便找到带有dbo访问权限的用户。 SELECTDISTINCTDB_NAME()DATABASE_NAME, SU.NAMEDATABASE_USERNAME FROMSYS
2、USERSSU JOINSYSMEMBERSSM ONSM.MEMBERUID=SU.UID INNERJOINSYSMEMBERSSM1 ONSM.MEMBERUID=SM1.MEMBERUID INNERJOINSYSUSERSSU1 ONSM1.GROUPUID=SU1.UID ANDSU1.NAME='db_oaster],DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF,CHECK_POLICY=OFF GO IFNOTEXISTS(SEL
3、ECT* FROMSYS.SERVER_PRINCIPALS E=N'DBUser1) CREATELOGIN[DBUser1] aster],DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF,CHECK_POLICY=OFF GO --addaaliasedusersys.sysusers 在下面的结果集中,我们看到AliasUser1前面有一个,如果我们检查字段isaliased,在右边的第三个字段,那么它有一个为1的值。 图二图三sys.sys
4、users 下面的命令也能运行来显示所有的用户和别名。在下面的输出结果中,你可以看到别名用户AliasUser1没有作为一个用户出现,但是在第二个结果集中它作为一个别名用户出现。 execsp_helpuser 图四sp_helpuser 另一个需要注意的有趣之处是,你不能使用sp_dropuser存储过程来删除一个别名用户,相反,要使用sp_dropalias来删除。 通过一个登录使用一个到dbo的别名,这将让你完全访问自己的数据库,例如一个db_oS中没有一个地方可以看到这个过程。你可以自己尝试。在其中一个你自己数据
5、库中按照下面的步骤,然后使用登录AliasUser1和密码test,你可以看到该登录可以在你创建别名的数据库中进行任何它想要的行为。 下一步骤 针对你的数据12下一页>>>>这篇文章来自..,。库运行sp_helpuser,看看你是否建立了别名。 如果有别名用户具有dbo级别的权限,那么看看删除这些并使用下面所述的角色。 这个别名功能被微软阻止了很长一段时间,但是它仍然在2005中使用。我认为这是基于向后兼容的考虑。该功能在SQL2008中取消了。 因此,如果你的应用程序正在使用别名,而它在SQL2008中不能使用,那么
6、使用上面提到的不同方法试试。(IT专家网)上一页12>>>>这篇文章来自..,。
此文档下载收益归作者所有