CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

如何编写ADO连接字符串打开设置了安全机制的Access数据库

楼主Boible()2002-11-14 06:03:23 在 VB / 数据库(包含打印,安装,报表) 提问

如题 问题点数:100、回复次数:20Top

1 楼saucer(思归)回复于 2002-11-14 06:18:58 得分 0

try   something   like  
   
   
  oConn.Open   "Driver={Microsoft   Access   Driver   (*.mdb)};"   &   _    
                        "Dbq=ThePathToYourDatabaseFile;"   &   _  
                        "Uid=admin;"   &   _  
                        "Pwd=YourPasswordHere;"  
  Top

2 楼Boible()回复于 2002-11-14 10:27:44 得分 0

你好!  
   
  你说的那种方式是对数据库加了密码的连接方式。  
   
  我现在想连的数据是在Office2000中设置了安全制并加密的数据库。它虽然也有密码,但性质不同吧。总之,那种连接方式是不行的。Top

3 楼dreammaker(世界因我而存在)回复于 2002-11-15 15:21:47 得分 0

saucer(思归)   后面好多星星呀!羡慕中:)Top

4 楼zither(渔歌子)回复于 2002-11-15 17:28:13 得分 0

同感   :)Top

5 楼cg_i(半点闲)回复于 2002-11-16 18:13:05 得分 0

我是初手~~~我来说两句。  
   
  不同的用户有着不同级别的访问方式,我想应该就是如同   saucer(思归)   前辈的语法一样,只是它用的是ADMIN(管理员)级别的用户访问罢了。  
  同样也可以换成你想要进行访问的用户名与密码,,当然它的访问权限会根据库中设定的而有些相应的限制。  
   
  说错勿怪~~~Top

6 楼LLeezhiling(乖乖)回复于 2002-11-16 18:51:19 得分 0

http://www.able-consulting.com/ado_conn.htm  
  你会有答案的  
  Top

7 楼ldg_2(绿豆糕)回复于 2002-11-17 09:30:57 得分 0

如果是不知道密码怎么办?Top

8 楼Ashray(灰射线)回复于 2002-11-17 12:49:22 得分 0

这个问题我也碰到过,最终也没解决。  
  我只能通过ODBC来访问加密的数据库,不方便。  
  Top

9 楼Boible()回复于 2002-11-17 22:53:29 得分 0

利用ADO方式的连接本人已经通过了,但是我还想使用OpenDatabase方式进行连接,又不知如何是好了,请各位不吝赐教!  
   
  Set   database   =   workspace.OpenDatabase   (dbname,   options,   read-only,   connect)  
   
  Top

10 楼springlover(水止如心)回复于 2002-11-18 08:25:28 得分 100

这是个典型的问题,我从前遇到过很多次,但都被我解决了。问题的所在在于你的ACCESS设定了用户和口令,也就是说,你指定了一个MDW文件来管理你自己的数据库。所以,你在做DAO或ADO连接的时候一定要指明MDW文件的位置,当然也必须指定你的ACCESS中的USER   ID   与PWD。可以看这样一条语句:  
  Me.Adodata.ConnectionString   =   "Provider=Microsoft.Jet.OLEDB.3.51;Persist   Security   Info=False;User   ID="   &   cstDefaultUser   &   ";password   ="   &   cstDefaultPassWord   &   ";Data   Source="   &   Trim(Cd.filename)   &   ";Jet   OLEDB:System   database=c:\data\system.mdw;Jet   OLEDB:Database   Password="   &   InputBox("请输入数据库的密码,没有直接单击确定!",   cstmsg,   "")  
   
  Jet   OLEDB:System   database=c:\data\system.mdw就是你需要的东西。  
  呵呵~~~~~~~~~~~我需要的呢,快给分。哈哈  
  Top

11 楼Boible()回复于 2002-11-19 11:38:22 得分 0

楼上的,你好!  
   
  你说的那种方法我知道了,现在的问题是想要使用OpenDatabase方法连接数据库,也就是说如果写也下面的句法。  
   
  Set   database   =   workspace.OpenDatabase   (dbname,   options,   read-only,   connect)  
   
  如果你帮我搞掂,这里的分数全部给你,如何?  
   
   
  另外,设置了安全机制的ACCESS数据库别人是不是打不开的,或着说这是目前最安全的保护ACCESS数据库的方法呢?Top

12 楼springlover(水止如心)回复于 2002-11-20 08:27:40 得分 0

哈哈,说好了,把分都给我啊。(对不起,抢分了,大家。。。)  
  我上面所说的方法是用ADO来打开带有MDW文件的ACCESS。而你的方法是用DAO来打开,这两者的方法的区别很小,只是代码上的区别。下面我就给你DAO的答案。  
  在你开始想处理数据库的代码只前加上这几句就一切OK了!  
  --------------------------------  
   
  DAO.DBEngine.SystemDB   =   "c:\yourpath\yourfilename.mdw"   指定MDW位置    
  DAO.DBEngine.DefaultUser   =   "springlover"         指定用户名          
  DAO.DBEngine.DefaultPassword   =   "XXXX"       指定密码  
   
  --------------------------------  
  做好了这些就OK了,你可以象写没有安全机制的数据库一样来写代码了。  
   
  对于你说的第2个问题,至少我认为是这个样子。建立连接MDW安全机制让数据库自己来管理用户安全问题最好。如果这样你还是不放心的话,那么就给你的数据库再加上密码了,只是写代码的时候麻烦一些,总要给密码。  
   
  呵呵,就这样,给分吧,我要升级了,等不及了。哈哈~~  
  祝   好运。Top

13 楼Boible()回复于 2002-11-20 17:31:42 得分 0

 
  水止如冰,你好!  
   
  首先得说说,你的名字起得挺文气的,好!  
   
  本人在此之前写了如下一段代码:  
   
          Dim   db   As   Database  
          Dim   X   As   Integer  
          Dim   TDF   As   TableDef  
          Set   db   =   OpenDatabase(DBPath)  
          For   X   =   0   To   db.TableDefs.Count   -   1  
                  Set   TDF   =   db.TableDefs(X)  
                  If   (TDF.Attributes   And   dbSystemObject)   =   0   Then      
                                  db.Execute   "Delete   *   From   ["   &   db.TableDefs(X).Name   &   "]"  
                  End   If  
          Next   X  
   
          觉得清空数据库的效率很高,速度很快,但是琢磨半天就是连不上设了安全机制的数据库,也查了很多资料,还是没有搞掂。你上面的方法我试过是,还是不行,是我学的不好,不能理解其中的关键问题,还请明示。  
   
          现在本人的意图就是用上面的代码方式清空数据库,能不能帮我写明一点呢,谢谢!  
   
          本人也愿意与你交个朋友,不知可否?  
           
          我现在也是1900多分了,前天骂共产党被扣了两分,所以信誉没有你好。  
   
          我是QQ是81925128。如果不嫌弃的话,有空的时候来聊聊吧。对不起如果你来的话请说明是的你,因为平时我不怎么去聊天的,怕误了你的信息,还有我是24小时都在线的,但有时候人是不在的,万一不在的话请别误会。Top

14 楼Boible()回复于 2002-11-20 17:38:07 得分 0

水止如冰,你好!  
   
   
          对不起!请教如何压缩数据库。Top

15 楼springlover(水止如心)回复于 2002-11-21 13:10:13 得分 0

1、我的名字是“水止如心”,呵呵,不要给我改名字啊。  
  2、不知道什么原因你的那段代码在你那不可以,以下的代码在我的机子上是完全可以的,我已经调试通过了,而且数据的确可以被清空。那你要仔细的查看一下你的代码和一些设定了。你的MDW文件是不是通过C:\windows\system\下的WRKGADM.EXE文件(WIN2000在WINNT\SYSTEM32下),用这个文件来创建或连接一个MDW文件。正确的代码如下:  
   
  Private   Sub   Command1_Click()  
      DAO.DBEngine.SystemDB   =   "c:\workgroup\cumtuser.mdw"   '指定MDW位置  
      DAO.DBEngine.DefaultUser   =   "gth"       '   指定用户名  
      DAO.DBEngine.DefaultPassword   =   "SPRINGLOVER@"     '   指定密码  
      Dim   db   As   Database  
      Dim   X   As   Integer  
      Dim   TDF   As   TableDef  
          Set   db   =   OpenDatabase("D:\GZDATA\GONGZIMB.MDB")  
          For   X   =   0   To   db.TableDefs.Count   -   1  
                  MsgBox   db.TableDefs(X).Name  
                   
                  Set   TDF   =   db.TableDefs(X)  
                  If   (TDF.Attributes   And   dbSystemObject)   =   0   Then  
                                  db.Execute   "Delete   *   From   ["   &   db.TableDefs(X).Name   &   "]"  
                  End   If  
          Next   X  
           
         
           
  End   Sub  
   
  3、压缩数据库:  
        1)、关掉所有的连接  
        2)、DBEngine.CompactDatabase   "c:\源.mdb   ",   "c:\目的.mdb   "  
        3)、删除     源.mdb              
        4)、重命名     目的.mdb   ---》源.mdb  
   
  4、你1900多分,怎么还是2颗三角啊。不知道这三角怎么加法,多少分换一个。看别人那么多星,真嫉妒啊,呵呵。  
   
  5、我也很高兴和你做朋友。  
   
  6、我的QQ:9057388  
   
   
  Top

16 楼springlover(水止如心)回复于 2002-11-21 13:19:50 得分 0

专家分刚刚过300,怎么不变成三个三角呢,多少分才变呢。晕~~~~~~~~~~~~~~Top

17 楼mazhayang(蚂蚱先生)回复于 2002-11-21 13:38:10 得分 0

我觉得最好不要在   DefaultUser   DefaultPassword   设定用户名和密码,而在workspace的创建中设置为好。Top

18 楼springlover(水止如心)回复于 2002-11-25 23:05:53 得分 0

这个问题可以结贴了!Top

19 楼chenyu5188(来自东方的狼)回复于 2002-12-04 06:14:58 得分 0

UPTop

20 楼srxgs()回复于 2002-12-04 21:03:42 得分 0

是可以结贴了。  
   
  凑个热闹:to   springlover(水止如心)  
   
  为何我用ADO的方式连接如下,却总提示“找不到可安装的ISAM”:  
   
  sConnect   =   "Provider=Microsoft.Jet.OLEDB.4.0;"   _  
  &   "User   ID=1234;"   _  
  &   "Password=1234;"   _  
  &   "Data   Source="   &   App.Path   &   "\db4.mdb;"   _  
  &   "Mode=ReadWrite|Share   Deny   None;Persitst   Security   Info=false;"   _  
  &   "Jet   OlEDB:System   database="   &   App.Path   &   "\Secured.mdw"  
  Top

相关问题

  • Access 字符串连接
  • 请问:bcb访问ACCESS数据库的ADO连接字符串CONNECTIONSTRING怎么写??
  • 我怎么把数据库(ado调用access)的时间转换到字符串?
  • ADO连接字符串的问题
  • 关于ADO的连接字符串??
  • ADO中设置Access连接字符串的问题,谁能解决100分全送!!!
  • [请问]用ADO方式访问ACCESS数据库时,如何能够存入一个二进制字符串
  • Access连接字符串错误
  • 关于连接字符串安全的问题??
  • 怎样用SQL向Access数据库中添加一个字符串字段,字符串属性为允许空字符串?

关键词

  • 数据库
  • 安全
  • 代码
  • access
  • 连接
  • 密码
  • 文件
  • ado
  • 用户
  • tabledefs

得分解答快速导航

  • 帖主:Boible
  • springlover

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo