0

Я принял проект vb.net, и одна из его особенностей заключается в том, что он автоматически создает ежедневную резервную копию базы данных при первом открытии системы каждый день.Установка пароля для входа в базу данных без установки строки подключения

Одна вещь, которую попросил клиент, - это ввести пароль в базу данных, сделать ее более безопасной и ограничить доступ к ней, поскольку он будет продавать на проекте дальше.

Я добавил пароль и установил пароль в строке подключения для входа в программу, однако мне нужно установить пароль для резервного копирования, но на данный момент я не могу решить, где пароль будет идти, так как я никогда не делал ничего подобного раньше (поскольку я только ученик на данный момент).

Что такое самый простой способ установить пароль для резервного копирования? Это код, который в настоящее время заботится о нем

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 

EDIT

Это код 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

Фикс к этому;

Ошибка, на линии 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") 

 Смежные вопросы

  • Нет связанных вопросов^_^