大容量数据(文件)保存到数据库的问题

饮水需思源 2004-10-25 11:02:05
一般的OA系统有很多各种文件要保存到数据库中,现有两种方案:
方案一:在数据库中设置一image字段,将各种文件以二进制数据直接保存到一字段中。但如果文件较多则会影响数据库的效率。
方案二:在数据库中只保存文件对应的路径,文件单独存放在某一目录下。但这样文件的保密性与安全性不是很好了,而且如果客户端是win98服务端是win2000则会不会有客户端不能访问服务端目录的情况出现?
不知大家还有没有更好的办法?
...全文
269 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
三面来风 2004-10-26
  • 打赏
  • 举报
回复
传说中的zjcxc是哪家公司的?
zjcxc 2004-10-25
  • 打赏
  • 举报
回复
用方案二,一般OA都是B/S结构的,所以不存在客户端不能访问服务端目录的问题

用B/S结构,将文件保存到WEB服务器上,用FSO对象可以存取非WEB目录下的文件,这样就解决了文件可以被非法获取的情况(安全性)


如果你是用C/S,那也没有问题,你可以专门写一个DLL,负责存/取文件,通过存储过程调用这个DLL,并用image对象来传递数据就行了
xuelanghun 2004-10-25
  • 打赏
  • 举报
回复
同意楼上
sql20041025 2004-10-25
  • 打赏
  • 举报
回复
基本上就这两种了。
zjcxc 2004-10-25
  • 打赏
  • 举报
回复
跟查询有关,比如,你可以为image字段专门建议文件组(先有数据文件,将这个文件放到单独的磁盘上),这样可以减少影响
饮水需思源 2004-10-25
  • 打赏
  • 举报
回复
呵呵,绝对的安全是没有的
我想问一下,设置成image字段对数据库的效率影响到底有多大?
zjcxc 2004-10-25
  • 打赏
  • 举报
回复
那你就错了,这样不安全的环境中,我可以将你的数据库强制下线(offline),然后就可以复制了
或者是我可以直接备份你的数据库,那样更方便
饮水需思源 2004-10-25
  • 打赏
  • 举报
回复
可是一般的单位没有专职的系统管理员,也不太可能将操作系统设置得比较安全,有的甚至连administrator的密码都不设置。如果将文件都保存在数据库中,至少SQL的服务开启时数据库不会被复制了
zjcxc 2004-10-25
  • 打赏
  • 举报
回复
你觉得不安全,是因为:
1.文件可以被任意复制,这是你的管理员不称职,没有控制好权限

2.文件可以被改名/删除/移动到其他地方,这也是你的系统管理员的问题

3.可能被误写,或者磁盘损坏导致文件丢失,保存到数据库中同样也存在这个问题,而且所有的文件放在一个库中,如果这个库有点损坏,它的损失可能是全部数据丢失
chn217 2004-10-25
  • 打赏
  • 举报
回复
呵呵,你也说了,是你不觉得不安全,事实上还是比较安全的,这也是经过验证了的。
饮水需思源 2004-10-25
  • 打赏
  • 举报
回复
可将文件放在一目录总觉得不是很安全

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧