访问有用户名和密码的网络共享,实现数据导入
一個應用需要使用局域網某部主機提供的數據.由于安全考慮.這個主機只開放了一個共享地址,并給了有權訪問的用戶名和密碼.數據為ACCESS文件.
而我們的應用需要每天定時去訪問這個文件.來同步數據.
環境:
1.共享文件形式,提供訪問的用戶名和密碼;
2.文件格式為Access文件;
3.數據需要定時訪問,與更新;
4.數據最終存儲目標地址為SQLServer數據庫
?
最初:
我們想通過SqlServer DTS包定時執行來導入數據.但不管怎么調試.SQLServer在執行的時報錯.報錯提示為權限不足.經過分析,SqlServer DTS
導入對于網絡共享目錄的支持不太好,再深入發現也跟共享目錄給的權限有一定關系.這個問題困繞了我們很長時間。在網絡上找了很多資料都沒解決。
?
改變方案:
寫一個單獨導入的程序,在導入之前通過批處理腳本去將文件復制到本地,然后再去導入,然后定出以下幾個步驟
1.啟用批處理腳本程度
2.復制文件到本地目錄
3.調用專門導數據的Exe可執行程序
4.導入成功
?
經過幾步就可實現一次數據導入??梢宰咄?。
接著將這個兩個文件部署到服務器中.用windows計劃任務來定時執行這個批處理.
部署后倍感開心??偹隳軐崿F完整導入。
第二天來公司。打開服務器一看windows計劃任務成功執行。然后查詢數據庫數據。竟然沒有導入??湛杖缫?。
是什么問題?然后再手工執行了計劃任務,發現一閃而過。也沒有錯誤提示.數據庫沒有數據.說明導入數據程序沒有執行到。
再打開計劃任務高級設置。發現一個地方 “起始于” 參數設置然后輸入bat的目錄地址,再次運行計劃任務。成功!
(這里注意:在bat調用其它Exe的時候一定要指定批處理文件的起啟位置。否則調不到Exe)
?
到這里這個導入程序可以實現自動更新了。然而好景不長。由于網絡主從切換,程序運行服務器要重新啟動。發現重新啟動后網絡共享地址就沒權訪問。
需要再次輸入用戶名和密碼,如果網絡環境略發生變化就會失敗.就不太穩定了.
?
升級方案
1.啟用批處理腳本程度
2.創建一個網絡驅動器
3.復制網絡驅動器文件到本地目錄
4.調用專門導數據的Exe可執行程序
5.刪除網絡驅動器
6.導入成功
升級方案后加入網絡驅動器會指定訪問的密碼和用戶名.不管機器是否為第一次訪問都可以連接.(你懂的)
?
在創建網絡驅動器時注意:
/user:機器名/用戶名
機器名為遠程共享文件的機器名.用戶名為遠程共享文件的機器用戶名
例如:net use M: \\192.168.1.2\TEST "123456" /user:fileserver\administrator
\\192.168.1.2\TEST為共享目錄的地址
123456為密碼
fileserver 為共享服務器名稱
administrator 為共享服務器登陸用戶名
?
腳本如下:
@ECHO OFF
@REM 以下三個變量配置,注意CHT_PATH等號后不能有空格
net use M: \\192.168.1.150\TEST1 "123456" /user:fileserver\administrator
net use N: \\192.168.1.150\TEST2 "123456" /user:fileserver\administrator
@SET CHT_PATH="M:\FUELSCAN.MDB"
@SET HIT_PATH="N:\FUELSCAN.MDB"
@SET SQL_CONN="Server=192.168.1.2;initial catalog=TEST_DB;uid=sa;pwd=sa123;"
@TITLE 作業導數
@ECHO 導入目標機器 %SQL_CONN%
@ECHO CHT文件來源 %CHT_PATH%
@ECHO HIT文件來源 %HIT_PATH%
@ECHO 當前時間:
@DATE /T
@TIME /T
@ECHO 開始復制文件...%CHT_PATH%
@COPY %CHT_PATH% "CHT_HIT\CHT_TEMP.mdb"
@ECHO 開始復制文件...%HIT_PATH%
@COPY %HIT_PATH% "CHT_HIT\HIT_TEMP.mdb"
@ECHO 開始導入數據...
@ECHO 正在導入中...
@CALL SnphkHIT_CHT_Task.exe %SQL_CONN%
net use M: /del
net use N: /del
@ECHO 導入完成
轉載于:https://www.cnblogs.com/hznet/archive/2011/06/21/2086117.html
總結
以上是生活随笔為你收集整理的访问有用户名和密码的网络共享,实现数据导入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Java实现几种常用排序算法(先实现一
- 下一篇: pyxml for python 2.6