ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1862|回复: 2

[求助] 如何确保VBA对SQL进行操作时候的数据安全性?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-2-27 00:30 | 显示全部楼层 |阅读模式
我们公司使用一个叫SYTELINE7的ERP系统,其数据库为SQL。本人只会一些简单的VBA代码,最近在其他人的帮助下,写了一些简单的代码,实现利用EXCEL的VBA登录服务器,从SQL中拿出数据放到EXCEL中,然后进行整理得到我们所需要的报表。这是一个非常常用而且有用的功能,只是老板出于数据安全的考虑,提出了如何确保SQL数据安全不被修改的问题,毕竟事关重大,如果出了问题后果可能比较严重。但是因为公司内部对这方面了解的人不多,自己又是半桶水,因而也一直无法回答这个问题,特此请教各位高手:

我写的代码绝大部分都是在一两分钟以内能够拿完数据并且整理完毕,不会占用很长的时间,其中拿数据的代码基本都是如下:

Sub CaptureRawData()
Dim CA As String
Dim i As Integer
Set cn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

cn.Open "Provider=sqloledb.1;Persist Security Info=True;User ID=sa;Password=;Initial Catalog=abc_app;Data Source=192.168.6.2"
cn.CommandTimeout = 720
Worksheets("ItemLoc").Activate
Cells.Clear
CA = "select item,qty_on_hand,loc,mrb_flag from itemloc where qty_on_hand<>0"
rs.Open CA, cn, 3, 1
For i = 0 To rs.Fields.Count - 1
Cells(1, i + 1) = rs.Fields(i).Name
Next
[A2].CopyFromRecordset rs
rs.Close

End Sub

其他的代码基本上跟SQL无关,都是EXCEL内部的操作,那么,有以下几个问题:
1. 怎样有效确保我的代码不会修改到SQL里面的数据?
2. 因为ERP系统一直都有人在用,如何确保我的代码运行的时候对系统的运行速度影响降低到最小,类似这样的代码对系统的运行速度影响有多大?有没有可能造成系统瘫痪数据丢失之类的?
3. 某些时候,系统可能因为某些原因而处于死机(或者瘫痪?英文表达叫system hang)的状况,这种情况下VBA还有没有可能连接成功并且拿到数据?按照一些人的说法,可能系统瘫痪了,但是数据库还是处于可以连接的状况,这个时候还是可以拿到数据的。
4. 类似的VBA代码对系统以及数据库是否还有一些其他潜在影响?

因本人对这些都了解不多,望高手解惑,越详细越好,不胜感激。

TA的精华主题

TA的得分主题

发表于 2011-2-27 11:32 | 显示全部楼层
在SQL新建一个用户,只有读取权限,就可以了,千万不要用SA账户,ERP死机只要SQL没事,还是可以读取数据的。对系统的运行速度影响取决于你的联网速度及SQL语句。可以考虑用服务器端存储过程,提高速度。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-2-28 09:57 | 显示全部楼层
多谢楼上的建议,我们老板还提出另外一个关心的问题。
就像我们使用EXCEL的过程中,如果EXCEL不正常关闭掉了,重新打开的时候会有一个自动恢复的过程,这是EXCEL自带的功能。那么在这些代码运行的过程中,有没有可能出现类似的情况,就是一个表打开了在拿数据的过程中还没来得及关闭,然后系统突然瘫痪了,从而造成重开的时候需要进行人工恢复,甚至是造成数据丢失的后果之类的。
大概是这个意思,因为老板对这个也只是懂些皮毛,提出了他的担心,我也不知道该如何回答这个问题,还望赐教。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 19:57 , Processed in 0.018400 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表