| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖, 1 人收藏
标题:怎样保证数据库安全?
只看楼主 加入收藏
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
结帖率:88.89%
收藏(1)
已结贴  问题点数:20 回复次数:7 
怎样保证数据库安全?
我用VB+SQL SERVER 2000做了一个C/S管理系统,用户使用客户端登陆,当我的网络服务器的数据库所在IP地址或数据库登录账号、密码更改时,用户就登录不了了。我现在的想法是:能否使用三个变量存放服务器IP,数据库登录账号及登录密码,当这三个变量发生改变时,要客户端用户手动更改,又不影响数据库安全。还是我的这个想法行不通,只能一次性在数据库连接字符串中设置好,如果这些参数改变了,就重新更新客户端程序?请高手指点迷津
搜索更多相关主题的帖子: 数据库安全 客户端 数据库连接 IP地址 
2013-02-15 13:22
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:20 
我的做法是:做一个服务器端程序,在服务器端存储好数据库连接参数,每次有客户端登录时首先是连接服务器端程序,由该程序将连接数据库的参数通过tcp/ip发送给客户端,客户端再根据服务器发送过来的参数连接数据库,为了防止嗅探类的程序探出网络数据,你还可以使用密文形式传输参数,这样一来你只要做好服务器端的保密工作就可以了。05年我做过类似软件,是使用sql2000的,并发用户数达到200,使用范围为各乡镇,一直很安全,如果给出公网地址,还可以通过互联网操作,为此我还专门制定了一个连接协议,发给你参考下(这是一个和它类似的硬盘播出用的协议,也是你自己可以定义、以此类推的)。
网络控制命令.rar (3.79 KB)
2013-02-15 15:41
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 2楼 lowxiong
非常感谢你的回答!你的方法应该很凑效呀!我怎么没有想起了呢,我试一试
2013-02-15 20:49
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 2楼 lowxiong
再问一下,客户端用户连接服务器程序获取三个数据库连接参数,是通过winsock控件吗,怎么通过代码实现呀?这三个参数可以在公共模块定义吗?感觉这个想法是好,可是实现起来不太容易呀
2013-02-16 15:10
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:0 
我是用winsock控件实现的,有些代码量。我的做法是在主窗口放置一个winsocket控件数组,控件数组0在固定端口监听连接,一旦有客户端申请连接的,就加载一个winsocket控件,成为控件数组1,这个客户端以后的通讯就是和数组1了,数组0继续监听,另外我还在模块里定义一个自定义的数据类型和一个该类型的数组变量,用于存储连接的客户端信息,我把连接sql的信息都存在一个access数据库里,包含这些内容(见图,其中密码是密文,对应实际密码为DWjO5pMS,要通过专门解密算法解密出来。):服务器ip,sql连接端口(默认1433,可以改),sql用户名,sql用户密码,sql数据库名。自定义类型和变量如下,供你参考:
Type Link
  ComputerName As String  '计算机名称
  ComputerIP As String    '计算机ip地址
  ComputerPort As Long    '计算机端口地址
  LinkNumber As Integer   '连接编号,在所有连接中唯一存在
  LinkUser As String      '登陆用户名称
  Ver As String           '所使用的客户端版本号
  OpPos As String         '当前操作员所在的操作位置
  LinkTime As Date        '客户端开始连接服务器的时间
  NoSendOk As Boolean     '网络数据发送未完成标志,True:正在发送  False:已经发送完毕
End Type
'定义网络连接类型
Public ComputerLink(250) As Link  '计算机连接清单
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 lowxiong 于 2013-2-16 19:06 编辑 ]
2013-02-16 18:38
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 5楼 lowxiong
谢谢回答,可以加你的QQ吗?make friends
2013-02-16 21:03
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 5楼 lowxiong
客户端的winsock控件还是要求remotehost的值呀,这个值是直接填死的,还是怎么活的动态处理呢?
2013-02-16 22:55
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:0 
客户端用access数据库或ini文件存储服务器ip地址,第一次会出现输入服务器ip地址对话框,以后就不再需要了。如果是在局域网,可用udp协议发广播信息索取服务器ip,这时remotehost地址是255.255.255.255,获取服务器ip后remotehost还是恢复正常ip即可。广播信息不能跨路由器发送。
2013-02-17 11:39
快速回复:怎样保证数据库安全?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013153 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved