在分析器中隐藏SQL

在分析器中隐藏SQL,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,如何使SQL语句不出现在探查器中? 他们包含敏感信息,我不想让他们知道 在分析器中显示 谢谢你的回复 探查器只能由具有适当权限的人运行,因此如果您的安装得到了适当的保护,您应该不会有问题(任何用户都不能对您的应用程序进行探查)。这超出了安全范围,因为探查器大大降低了服务器的运行速度。我能想到的唯一方法是让它们成为存储过程(探查器只会显示调用),但如果参数是安全的(这很可能),那么这对您没有帮助(编辑:正如注释中指出的,您可以更改探查器的配置以包含此调用,因此这不会有多大帮助) 您是否考虑过不允许

如何使SQL语句不出现在探查器中? 他们包含敏感信息,我不想让他们知道 在分析器中显示


谢谢你的回复

探查器只能由具有适当权限的人运行,因此如果您的安装得到了适当的保护,您应该不会有问题(任何用户都不能对您的应用程序进行探查)。这超出了安全范围,因为探查器大大降低了服务器的运行速度。

我能想到的唯一方法是让它们成为存储过程(探查器只会显示调用),但如果参数是安全的(这很可能),那么这对您没有帮助(编辑:正如注释中指出的,您可以更改探查器的配置以包含此调用,因此这不会有多大帮助)

您是否考虑过不允许不允许查看数据的人访问?访问运行探查器是一种相当高的访问级别

此外,在存储/查询数据之前,您是否考虑过数据?有时这不起作用,但如果我们谈论的是密码,那么它们确实应该以加密的形式存储和查找。

没有办法。探查器中的“文本”列无法从使用中删除

您需要运行探查器的权限(sysadmin或
GRANT ALTER TRACE
),因此它不是隐式权限

注:

  • 系统管理员可以解密存储的进程或添加日志代码,而不管他们是否运行探查器
  • 物理访问需要控制,至少可以阻止有人拿走数据库的副本
  • 像sp_密码或ALTER LOGIN之类的东西无论如何都不会被追踪

我注意到,如果您使用SQL中内置的加密函数(关于at的文章),如
EncryptBypass短语
,则文本不会显示在探查器中-我不确定这是否是100%的傻瓜式,但它确实符合问题

例如。。。

情况并非总是如此。DBA可能拥有数据库管理权限(用于维护)的情况,但无权查看数据库内的敏感详细信息。加密/散列信息是两种情况下提供的一种解决方案。仅将其设置为存储过程是不够的,因为SP:StmtCompleted事件仍可用于跟踪存储过程的执行()但这不会在实际的存储过程中显示SQL。正如我所说的,只有当SQL本身而不是需要保护的参数时,它才会起作用。(尽管事后看来,任何有权运行探查器跟踪的人可能都有足够的能力显示存储过程的定义)不,这将逐步显示正在执行的实际语句。