Office中国论坛/Access中国论坛

标题: 不让打开MSysObjects表来隐藏表 [打印本页]

作者: adsl0125    时间: 2011-4-23 03:41
标题: 不让打开MSysObjects表来隐藏表
本帖最后由 adsl0125 于 2011-4-24 11:58 编辑

看过Roy的
有没有用MSysObjects找不到的表?
http://www.office-cn.net/forum-viewthread-tid-95999-fromuid-180853.html

这个方向非常有趣,由于MSysObjects是管理整个库中所有对象的表
如果MSysObjects都找不到,那Access会认为那个对象是不存在的,那么也意味着你访问不到隐藏的对象(除非你用第三方程序来打开它)

让MSysObjects找不到来隐藏表的方法,个人认为是基本很难做到的。
所以换个思路,让用户没有权限来访问MSysObjects,来隐藏~TMPCLP开头的表

对那个"测试"修改MSysObjects没有任何权限。

结果就是这样
1。MSysObjects,Access03里,你看到的,打不开。(Access07直接就看不到所有对象了)
1。~TMPCLP这种临时表,用AllTable枚举不到。
3。DAO和ADO与也无法访问,也枚举不了。

如果碰到这样的文件,暂时我还想不到什么好办法来破解。。。

另外这个方法也是缺点的,因为用户对MSysObjects没有访问权限,所以也就不能创建窗体,查询,表等一些对象了

实例如下,欢迎大家一起讨论。

[attach]45394[/attach]


作者: t小宝    时间: 2011-4-24 11:43
这个办法值得探讨
作者: roych    时间: 2011-4-24 12:57
是否可以考虑ADOX.Catalog来为用户重新设置权限,再处理?
作者: danis    时间: 2011-4-24 16:23
mark




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3