0

저는 vb.net 프로젝트를 인수했으며, 시스템을 처음으로 매일 열면 자동으로 매일 데이터베이스 백업을 생성하는 기능이 있습니다.연결 문자열을 설정하지 않고 데이터베이스 로그인 암호를 설정하십시오.

클라이언트가 요청한 한 가지 점은 데이터베이스에 암호를 설정하고 보안을 강화하며 액세스를 제한한다는 것입니다. 프로젝트에서 더 많이 판매하게 될 것입니다.

비밀번호를 추가하고 프로그램에 로그인하기 위해 비밀번호를 연결 문자열에 설정했지만 백업을 위해 비밀번호를 설정해야하지만 현재로서는 해결할 수 없습니다 암호는 내가 전에는 이와 비슷한 것을 한 적이 없기 때문에 갈 것이다. (나는 지금 그저 견습생 일 뿐이다.)

백업을위한 암호를 설정하는 가장 쉬운 방법은 무엇입니까? 이 기능은 현재이 asyncBackupDaily

Private Sub asyncBackupDaily(ByVal state As Object) 

    Try 
     sql = "SELECT * FROM [System Settings]" 
     dataAd = New OleDb.OleDbDataAdapter(sql, con) 
     dataSet = New DataSet 
     dataAd.Fill(dataSet) 

     Dim currentDB As String = readIni("DATABASE", directorypath & "settings.ini") 
     Dim newDB As String = dataSet.Tables(0).Rows(0).Item("backupPath") & _ 
     "backup" & DateTime.Now.ToString("yyyy-dd-MM") & ".mdb" 

     My.Computer.FileSystem.CopyFile(currentDB, dataSet.Tables(0).Rows(0).Item("backupPath") & _ 
     "backup" & DateTime.Now.ToString("yyyy-dd-MM") & "-nc.mdb", True) 

     If My.Computer.FileSystem.FileExists(newDB) = True Then 
      My.Computer.FileSystem.DeleteFile(newDB) 
     End If 

     Dim dbo As New DAO.DBEngine 
     dbo.CompactDatabase(dataSet.Tables(0).Rows(0).Item("backupPath") & _ 
     "backup" & DateTime.Now.ToString("yyyy-dd-MM") & "-nc.mdb", newDB & ";pwd=Acplus2016!") 

     Try 
      My.Computer.FileSystem.DeleteFile(dataSet.Tables(0).Rows(0).Item("backupPath") & _ 
     "backup" & DateTime.Now.ToString("yyyy-dd-MM") & "-nc.mdb") 

     Catch ex As Exception 
     End Try 

     MsgBox("Daily auto-backup successful!", MsgBoxStyle.OkOnly, "Success") 

    Catch ex As Exception 
     errorLog(ex) 

    End Try 
End Sub 

오류 코드입니다 라인이에 dbo.CompactDatabase(dataSet.Tables(0).Rows(0).Item("backupPath") & "backup" & DateTime.Now.ToString("yyyy-dd-MM") & "-nc.mdb", newDB)

답변

0

수정입니다 그것의 관리

If .Item("autoBackup") = True Then 
        If .Item("buDaily") = True Then 

         sql = "SELECT * FROM [System Settings]" 
         dataAd = New OleDb.OleDbDataAdapter(sql, con) 
         dataset = New DataSet 
         dataAd.Fill(dataset) 

         With dataset.Tables(0).Rows(0) 
          If File.Exists(.Item("backupPath") & "backup" & _ 
          DateTime.Now.ToString("yyyy-dd-MM") & ".mdb") = True Then 
          Else 

           System.Threading.ThreadPool.QueueUserWorkItem(AddressOf asyncBackupDaily) 

          End If 
         End With 
        End If 

편집

걸리는 코드;

매개 변수 때문에 dbo.CompactDatabase 라인의 오류가 발생했습니다.

해결

다음

dbo.CompactDatabase(dataSet.Tables(0).Rows(0).Item("backupPath") & "backup" & DateTime.Now.ToString("yyyy-dd-MM") & "-nc.mdb", newDB, Nothing, Nothing, ";pwd=myPassword") 
이 줄을 변경했다 "암호가 유효하지 않습니다"