**
一、Access数据库结构
**
Access中包含以下系统表
MSysAccessXML、MSysAces、MSysImexColumns、MSysObjects、MSysQueries、MSysRelationShips
是微软自带的。其中,MSysObjects表中包含了所有数据库对象。但遗憾的是,Access数据库默认不允许访问这些表。
二、是否为Access
方法1
在地址栏上显示的连接所带的参数后面加些特殊符号,看它的报错信息,如
http://www.**.com?id=1’
则回返回错误,如果是Microsoft JET Database Engine错误’80040e14’的话,则说明网站所用的数据库是Access数据库。
方法2
利用SQL和ACCESS的系统表的结构,如下
http://wwww.***.com?id=1 and (select count(*) from sysobjects)>0
//sysobjects 是SQL表
http://www.***.com/id=1 and (select count(*) from msysobjects)>0
//msysobjects 是access
如果加sysobjects的SQL语句后,网页显示正常, 加msysobject的SQL语句后,网站显示不正常,则说明用的是SQLServer数据库。
如果加sysobjects和加msysobjects的SQL语句后,网页显示都不正常,或者加msysobject后的网页显示正常,则说明是ACCESS数据库。
方法3
如果目标数据库同时支持len函数和chr函数,且不支持length和char函数,则很可能是Access数据库。在不返回报错信息的情况下,这种方式是我最常用的。