上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 20 下一页
  2008年8月4日
摘要: 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 阅读(5099) 评论(4) 推荐(0)
  2008年8月1日
摘要: 最近我收到一些关于对称密钥有效范围的问题,特别是在模块内(存储过程)打开对称密钥。其中一个问题是,如果在存储过程内执行打开密钥(OPEN SYMMETRIC KEY)的操作,而退出存储过程前没有将密钥关闭,会导致密钥“泄露”到模块以外。在BOL的OPEN SYMMETRIC KEY(在备注下方)文章中,我们已经写明,打开的密钥在整个会话范文内有效,而仅仅是在执行上下文内(包括存储过程),并且密钥在被显示关闭(使用CLOSE SYMMETRIC KEY语句)或者会话终止前密钥都是处于打开状态的。如何保证密钥在模块内打开并且不会被“泄露”出去呢?需要显示密钥关闭。目前为止SQLSERVER 200 阅读全文
posted @ 2008-08-01 10:29 stswordman 阅读(3365) 评论(2) 推荐(0)
  2008年7月31日
摘要: 我经常被问及这样的问题,能否让一个用户有加密数据的能力却不能解密数据呢? 答案是:可以。但在我展示这个方法之前,我们先稍微讨论一下对称密钥(symmetric key)。 用户能否加密或解密数据取决于用户能否够打开这个密钥。 如果用户可以打开密钥,那么他既能加密也能解密。 要想限制用户去使用密钥,需要删除用户打开密钥的能力。我们可以创建一个存储过程,将加密和打开密钥的过程封装进去,并让这个存储过程有权限执行这些操作(通过签名),然后赋予用户执行存储过程的权限。这样用户就可以通过存储过程访问密钥,但不能直接方法问密钥。注意,如果用户可以在并行操作中调用这个存储过程,可能会导致密钥被用户直接使用( 阅读全文
posted @ 2008-07-31 09:46 stswordman 阅读(2296) 评论(6) 推荐(0)
  2008年7月29日
摘要: SQLSERVER 2005提供的对存储过程签名(signature)功能是我最喜欢的。如果我们要编写一个存储过程,执行该存储过程里的代码需要权限P,并且我们想要用户Alice可以执行这个存储过程,但是我们不想将权限P直接赋予给用户Alice, 我们可以用证书(certificate)对这个存储过程进行签名来完成这一需求:a) 如果P是一个数据库级别的权限,那我们可以在相应的数据库中创建一个证书,使用证书创建一个用户(user),然后将权限p授权给这个用户b) 如果P是一个服务器级别的权限,那我们能要在master数据库中创建一个证书,使用证书创建一个登录(login),然后将权限P授权给这个 阅读全文
posted @ 2008-07-29 10:20 stswordman 阅读(2710) 评论(11) 推荐(1)
  2008年7月28日
摘要: 不久之前,我回答过一个问题:如找出被证书(certificate)加密的密钥。 我写了一些查询,用于找出那些加密,签名的信息。在展示这些查询之前,我会对这两个视图做个简要的介绍:crypt_properties视图保存了签名(signature)相关的信息。可以用其中的thumbprint列来确定相关的密钥。key_encryptions视图保存了对称密钥加密(symmetric key)的相关信息。和crypt_properties视图一样,非对称密钥(asymmetric key)和证书也是用thumbprint列来确定的。 但是,对称密钥则完全不同,需要用到GUID.现在列出这些查询 : 阅读全文
posted @ 2008-07-28 11:04 stswordman 阅读(1088) 评论(0) 推荐(0)
  2008年5月14日
摘要: 简介 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时都可能会发生此问题。例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到 SQL Serv... 阅读全文
posted @ 2008-05-14 18:44 stswordman 阅读(1008) 评论(2) 推荐(0)
  2007年8月22日
摘要: 数据行所占的最小空间是多少呢? 先来看看下面这张经典数据行结构图(引自Inside Sql Server) 因为可变长度类型的列会有额外的空间开销,所以不考虑可变长度的字段。 现在计算一下除去实际数据后每个数据行所需要占用的空间: 状态位A占一个字节,状态位B占1个字节,用于标识固定字段长度的占2个字节,标识固定列数量的占去2个字节,NUL... 阅读全文
posted @ 2007-08-22 22:17 stswordman 阅读(3868) 评论(16) 推荐(0)
  2007年7月9日
摘要: 闲着没事,仿照SDK的样子自己做了一个。 程序主要使用了System.Windows.Markup命名空间下的XamlReader类和XamlWriter,其中XamlReader可以将 Xaml代码转换为元素示例,而XamlWriter类可以将元素... 阅读全文
posted @ 2007-07-09 00:03 stswordman 阅读(6354) 评论(8) 推荐(0)
  2007年7月8日
摘要: TextBlock和Label都可以显示文本,属于WPF中比较常用的控件。在最初接触WPF时,我经常为如何选择这两个控件感到困惑。随着对WPF深入学习,对这两个控件也有一些了解。今天就说一些我对TextBlock和Label的看法吧。 Label和TextBlock都是System.Windo... 阅读全文
posted @ 2007-07-08 11:15 stswordman 阅读(6910) 评论(5) 推荐(0)
  2007年7月5日
摘要: Routed Event是wpf的重要组成部分,它的实现方式和Dependecny Property非常类似。Routed Event触发时会沿着视觉树和虚拟树向上或向下传递,它的存在使得WPF隐藏了视觉树这个概念... 阅读全文
posted @ 2007-07-05 11:22 stswordman 阅读(3415) 评论(3) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 20 下一页