• HOME
  • DOCS
  • WTF
  • TECH
  • LIFE
  • PAGES
    • ARCHIVE
    • TAGS
    • ABOUT
    • FRIENDS
    • RSS
  • TOOLS
    • GEO
    • RANDOM()
    • GOO.GL
    • CSS HEART
Aj's Blog

记录时间溜走的瞬间和折腾过的那些事

Access:如何枚举表名和字段名

2011-10-21  TECH  access  access 隐藏表  mdb  枚举列名  枚举表名  

一、枚举表名

SQL语句: SELECT [NAME] FROM [MSysObjects] WHERE Type=1 AND Flags=0 Order By [Name]

其中[MSysObjects]为系统表之一,[Name]为表名,默认情况下是无法直接访问access的系统表的,会提示没有权限,只有手工设置了读权限后才可以。

1. 打开Access

2. 点击“工具”菜单,选择“选项”

3. 在“视图”页上,将“系统对象”勾上

4. 点击“确定”按钮保存设置

5. 点击“工具”菜单,选择“安全”中的“用户与组权限”

6. 选择“权限”页

7. 在“对象类型”下拉列表中选择“表”

access 显示系统表

8. 在“用户名/组名”中选择“管理员”用户

9. 在“对象名称”中选择“MSysObjects”表

10. 在“权限”中将“读取数据”勾上

access 系统表读取权限

11. 点击“确定”按钮保存设置

二、枚举列名

Set Rs = Conn.Execute("Select * From [TableName]")
For Count=0 to Rs.Fields.Count-1
    Response.Write Rs.Fields(Count).Name
Next
Rs.Close:Set Rs=nothing

三、其他应用

隐藏表:

既然可以显示出来系统表,那么就可以隐藏系统和普通表

我见过不少程序将注册信息存贮在表内然后隐藏以防止注册信息被找到和破解

初步猜测是设定某个普通表的属性为系统表,但是权限保留,即:不可见但可读写

有兴趣的话可以去尝试一下,这不是本文重点,所以就不尝试了。

下一篇:   SSH管理linux常用命令:下载/解压/复制/粘贴/删除
上一篇:   kloxo: suphp和mod_php的区别,以及常见错误的解决办法
暂无评论

Cancel reply