关于SQL查询前加--sp_password的问题

yanele 2011-08-01 11:37:14
以前用SQL2000时,在查询语句前加--sp_password时,SQL是无法跟踪出来的.

为什么现在SQL2008在查询语句前加--sp_password不起作用了?要如何才能隐藏SQL语句?
...全文
569 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
wifayy 2012-10-18
  • 打赏
  • 举报
回复
可以使用存储过程停止跟踪
yanele 2012-02-28
  • 打赏
  • 举报
回复
据说2008没有这个功能,郁闷……
代码打字员 2012-02-27
  • 打赏
  • 举报
回复
兄弟,我也是这个问题,换成sql 2008 上面说的那个关键字方法,完全不起作用了。
等到好的解决方案,可以通知下我。谢谢
yanele 2011-10-06
  • 打赏
  • 举报
回复
这个问题不是我想出来的,别人有专门的说明,我也实践过,只是现在换成SQL2008了,这一招不行了!
http://www.cnblogs.com/sjcatsoft/archive/2010/01/21/1653152.html
misterliwei 2011-08-03
  • 打赏
  • 举报
回复
一个不是办法的办法:将代码放到存储过程中并加密,虽然执行“EXEC ...”会被事件查看器看到,但是具体的存储过程代码是看不到的。
yanele 2011-08-03
  • 打赏
  • 举报
回复
这样岂不是没有什么可以保密的了!?
cs_lb 2011-08-03
  • 打赏
  • 举报
回复
创建和执行,以及删除 都在程序里面进行

创建时WITH ENCRYPTION,跟踪是抓不到创建的文本的

执行是只能抓到存储过程名字,执行完毕后删除存储过程,下次执行时再临时创建
yanele 2011-08-03
  • 打赏
  • 举报
回复
如果是程序去执行创建存储过程,不是一样可以看见吗?
cs_lb 2011-08-03
  • 打赏
  • 举报
回复

create procedure test WITH ENCRYPTION
as
begin
select 1
end
go
exec test

drop procedure test



SQL 2005/2008我想出了这个办法
执行完毕后删除存储过程,下次执行前再创建
创建加密存储过程时,跟踪不出来的
yanele 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 misterliwei 的回复:]
一个不是办法的办法:将代码放到存储过程中并加密,虽然执行“EXEC ...”会被事件查看器看到,但是具体的存储过程代码是看不到的。
[/Quote]

但网上说这种方法稍微懂点电脑的人,到网上一搜,也是可以解密出来看到的.
快溜 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yanele 的回复:]
那换个方式问吧:SQL2008,有没有办法防止跟踪到执行的SQL语句?
[/Quote]可放到存储过程中加密WITH ENCRYPTION
yanele 2011-08-01
  • 打赏
  • 举报
回复
那换个方式问吧:SQL2008,有没有办法防止跟踪到执行的SQL语句?

AcHerat 元老 2011-08-01
  • 打赏
  • 举报
回复
这俩貌似没什么关系吧!
yanele 2011-08-01
  • 打赏
  • 举报
回复
我现在数据库换成SQL2008的了,试不出SQL2000的效果.
以前在SQL2000下,写程序时执行SQL语句,只要在SQL语句前一行加上:--sp_password
再另起一行执行自己的语句时,SQL跟踪不到具体执行的语句,会显示这段语句加密什么的.
BigInt 2011-08-01
  • 打赏
  • 举报
回复
这本来就是个嗖主意
cd731107 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 yanele 的回复:]
以前用SQL2000时,在查询语句前加--sp_password时,SQL是无法跟踪出来的.

为什么现在SQL2008在查询语句前加--sp_password不起作用了?要如何才能隐藏SQL语句?
[/Quote]
楼主分享一下以前的查询语句
chuanzhang5687 2011-08-01
  • 打赏
  • 举报
回复
Sqlserver中利用系统存储过程sp_password修改密码

Sqlserver中利用系统存储过程sp_password修改密码
在SQL查询分析器里执行
1

sp_password null,'another','sa'

以上这句话将sa密码改为another

sp_password
添加或更改 Microsoft SQL Server 登录的密码。

语法
sp_password [ ][ @old = ] 'old_password' , ]
{ [ @new =] 'new_password' }
[ , ][ @loginame = ] 'login' ]

参数
[@old =] 'old_password'

是旧密码。old_password 为 sysname 类型,其默认值为 NULL。

[@new =] 'new_password'

是新密码。new_password 为 sysname 类型,无默认值。如果没有使用命名参数,就必须指定 old_password。

[@loginame =] 'login'

是受密码更改影响的登录名。login 为 sysname 类型,其默认值为 NULL。login 必须已经存在,并且只能由 sysadmin 固定服务器角色的成员指定。

返回代码值
0(成功)或 1(失败)

注释
SQL Server 密码可包含 1 到 128 个字符,其中可包括任何字母、符号和数字。

新密码以加密的形式更新和存储,因此,任何用户(甚至系统管理员)都不能查看密码。

当 sysadmin 或 securityadmin 固定服务器角色的成员使用带全部三个参数的 sp_password 重新设置他们自己的密码时,审核记录反映的却是他们正在更改别人的密码。

sp_password 不能用于 Microsoft Windows NT? 安全帐户。通过 Windows NT 网络帐户连接到 SQL Server 的用户是由 Windows NT 授权的,因此其密码只能在 Windows NT 中更改。

sp_password 不能在用户定义的事务中执行。

权限
执行权限默认地授予 public 角色,以供用户更改自己的登录密码。只有 sysadmin 角色的成员可更改其他用户的登录密码。

示例
A.无原密码的情况下更改登录密码
下面的示例将登录 Victoria 的密码更改为 ok。

EXEC sp_password NULL, 'ok', 'Victoria'

B.更改密码
下面的示例将登录 Victoria 的密码由 ok 改为 coffee。

EXEC sp_password 'ok', 'coffee'
快溜 2011-08-01
  • 打赏
  • 举报
回复
sp_password是修改登录名密码的,跟sql是否跟踪的到没关系,
你可以考虑给存储过程加密。WITH ENCRYPTION
cutebear2008 2011-08-01
  • 打赏
  • 举报
回复
sp_password 不是用来改密码的吗!!!

sp_password [ [ @old = ] 'old_password' , ]
{ [ @new =] 'new_password' }
[ , [ @loginame = ] 'login' ]

EX:
sp_password 'aaa','123',sa
GUOCHENGJUN 2011-08-01
  • 打赏
  • 举报
回复
向你学习了,第一次听说!
加载更多回复(7)

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧