删除用户出现的错误
摘要:drop user u1 出现如下错误: Msg 15136, Level 16, State 1, Line 1 The database principal is set as the execution context of one or more procedures, functions, or event notifications and cannot be dropped. ...
阅读全文
posted @
2008-08-28 15:21
stswordman
阅读(590)
推荐(0) 编辑
SQL Server 2005: About login password hashes
摘要:目前人们对于SQLSERVER处理登录密码的方式存在一些误解。希望阅读本文后,你能够对这些概念有清楚的认识。需要注意的是,只有SQL验证才会涉及到登录密码,WINDOWS验证模式不需要密码。第一个错误概念是SQLSERVER会对登录密码进行加密,然后储存起来。这是错误的。SQLSERVER存储的是经过HASH后的密码。HASH和加密的不同之处在于其难于反向破解--但是对于加密算法而言,只要掌握密钥就可以轻易获得明文。从HASH后的字符中找出原始明文是非常困难的(除非你已经知道了明文)。不选择加密而选择HASH的优点是无需保护密钥(参见之前的文章)。那么SQLSERVER是如何处理登录密码的呢?
阅读全文
posted @
2008-08-11 00:57
stswordman
阅读(3012)
推荐(0) 编辑
xp_cmdshell
摘要:xp_cmdshell可以以SQLSERVER的上下文(也就是启动sqlserver服务的windows账户)或代理账户的上下文(通过为xp_cmdshell设置凭据)调用操作系统的任意命令。 xp_cmdshell非常灵活,实际上我想说它实在太灵活了,用户可以通过xp_cmdshell执行任何命令,并且没有什么好的方法可以去限制这种灵活性,这简直为它的滥用大行方便。在许多情况下,为了执行操作系统中的操作,人们开启了xp_cmdshell,并且授权那些非sysadmin角色的帐户可以去调用xp_cmdshell,但并没有认识到这些用户可以执行任意命令,在某些情况下,这些用户可以通过xp_cmd
阅读全文
posted @
2008-08-04 00:40
stswordman
阅读(5085)
推荐(0) 编辑
OPEN SYMMETRIC KEY scope in SQL Server
摘要:最近我收到一些关于对称密钥有效范围的问题,特别是在模块内(存储过程)打开对称密钥。其中一个问题是,如果在存储过程内执行打开密钥(OPEN SYMMETRIC KEY)的操作,而退出存储过程前没有将密钥关闭,会导致密钥“泄露”到模块以外。在BOL的OPEN SYMMETRIC KEY(在备注下方)文章中,我们已经写明,打开的密钥在整个会话范文内有效,而仅仅是在执行上下文内(包括存储过程),并且密钥在被显示关闭(使用CLOSE SYMMETRIC KEY语句)或者会话终止前密钥都是处于打开状态的。如何保证密钥在模块内打开并且不会被“泄露”出去呢?需要显示密钥关闭。目前为止SQLSERVER 200
阅读全文
posted @
2008-08-01 10:29
stswordman
阅读(3346)
推荐(0) 编辑