阅读:1608回复:11
文件系统驱动能否拦截数据库的写盘数据?
那位大牛兄弟知道,文件系统驱动,能否捕获数据库写盘时的数据?比如SQL Server数据库向*.mdf、*.LDF文件写数据的时候,驱动能否获取数据?
有牛人知道么? |
|
|
沙发#
发布于:2008-11-10 17:55
你是想搞个数据库备份的工具吧?
|
|
板凳#
发布于:2008-11-10 22:38
显然是可以的,数据库跟文件系统是不同层次的东东.它只要以文件的形式写数据就可以拦得到
|
|
|
地板#
发布于:2008-11-10 22:40
不过目前在驱动中,还不容易实现基于类的全局变量.一般是声明一个指针,再new,
|
|
|
地下室#
发布于:2008-11-11 09:42
大家可以写一个简单的驱动看看,好象只能在fastio中获得错误日志的写操作,不能截获关于.*.mdf、*.LDF读写的任何信息。这是怎么一会事?有兄弟们知道么?
|
|
|
5楼#
发布于:2008-11-11 12:10
"它只要以文件的形式写数据就可以拦得到"--------支持
“大家可以写一个简单的驱动看看,好象只能在fastio中获得错误日志的写操作,不能截获关于.*.mdf、*.LDF读写的任何信息。这是怎么一会事?” 具体的我不清楚 但是我想可能是你驱动加载的时候数据库已经在运行了。 你可以尝试下 开机-- 加载驱动--手动启动数据库软件--监视数据库进程--关闭数据库。按照这个顺序应该可以看到你想看的东西。 数据库文件加密属于特殊的一类文件加密而已。 现在大多数的数据库都是运行于文件系统之上的吧。(如果制造一个直接运行在物理磁盘上的数据库的话 那么文件驱动就没有办法实现监视了) 数据库的操作 我认为在应用层做可能更加简单些 因为这个可能和针对某进程的数据进行加密是一致的 |
|
6楼#
发布于:2008-11-11 13:33
我的测试过程是1:安装驱动,重新启动系统;2:安装数据库,重新启动系统;3:开启数据库;4:insert某表一些数据;5:等一会,手工执行checkpoint命令;6:关闭数据库。整个过程没有扑捉到关于写.*.mdf、*.LDF文件的信息。
呵呵,真可悲。不过其他类型的文件写入(比如写字板、Word等程序写文件),都可以捕捉到完整数据。 所以感到很困惑。 |
|
|
7楼#
发布于:2008-11-12 13:32
大牛们,不知道么?
|
|
|
8楼#
发布于:2008-11-12 22:08
fastio的原因吧?推测的.
看你的介绍,应该是sqlserver,但是目前还没有支持裸设备的版本吧?所以,还是文件操作,你一定可以抓得到 |
|
|
9楼#
发布于:2008-11-13 09:55
数据库快照的稀疏文件还需要NTFS的支持,所以说裸设备不支持SQL Server.如此分析来,可以得到一个结论就是:文件系统驱动肯定可以捕获SQL Server数据的IO动作与数据。
|
|
|
10楼#
发布于:2008-11-13 15:22
多谢兄弟们的关注,文件系统驱动可以抓获SQL Server IO数据。可能是我的开发环境出了问题,一直捉不到。换了一台计算机就好了!
|
|
|
11楼#
发布于:2008-11-13 15:27
具体什么原因,我也不知道,反正换一台计算机就好了。不知道是不是与其他程序、驱动间发生了什么冲突?还是其他原因。如果知道的大牛,可以此处解释一下。让兄弟们都长长见识。
|
|
|