日期:2014-05-18  浏览次数:20403 次

如何检测软件的SQL数据连接相关信息?
1、现有文件:

软件本体:serv.exe
配置文件:serverconfig.ini
数据库备份:data(bak文件)

2、现有操作:

将data还原到本地(local)数据库data,打开serverconfig.ini,有如下代码:

[ServerConfig]
SqlServerIP=127.0.0.1
SqlServerDB=data
SqlServerPassword=
//以下代码确认与数据库连接无关//感觉少了个SqlServerUsername...........

/////////////////分割///////////////////


以上为serverconfig.ini的内容

以上操作完成后,执行serv.exe,点击“启动服务”按钮,监听到1433端口响应,说明启动了sql的连接,但一会儿就在“连接信息”(软件上的一个信息显示框)上提示“SQL   Server   不存在或访问被拒绝”,软件立刻停止了连接,“启动服务”按钮处于可点击状态。


3、现有问题:
(1)、通过什么样的手段检测到软件的数据连接方式、连接的用户名?
|
|
V
(2)、软件中是否存在相关的api或者其它的数据操作,以致使不需要sql用户名与密码?


ps:我用WinHex加载了此软件的内存,在代码中也只能看到serverconfig.ini中的几项参数与数据库相关。

各位达人帮忙一下,其实我主要想了解的是如果检测软件连接sql的相关信息包括sql用户名等信息。

------解决方案--------------------
sp_who
提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。

语法
sp_who [[@login_name =] 'login ']

参数
[@login_name =] 'login '

是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVE。ACTIVE 从报告中排除等待用户下一个命令的进程。

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