次のコードを使用して、VB.Netを使用してSQLServerデータベースを他の物理的な場所にバックアップしています。しかし、クライアントPC内に保存しようとすると、次のエラーが発生します。一部のクライアントでは、外付けハードドライブで動作しますが、すべてのクライアントで動作するわけではありません。
バックアップデバイス「D:\ 11-16-2020_POS_DB_MM.bak」を開くことができません。オペレーティングシステムエラー5(アクセスが拒否されました。)
BACKUPDATABASEが異常終了しています。
ユーザー権限が原因でエラーが発生していることを理解しています。コードでこれを修正することは可能ですか、それともすべてのクライアントで常にユーザー権限を設定する必要がありますか(データベースはサーバー内にあり、複数のクライアントがあります。セットアップパッケージを使用してクライアントに展開します)
Public Class frmBackup
Private connString As String = "Data Source=SQLSERVER\SLMA;Database=master;User Id=sa;Password =" & dbPwd & ";"
Private con As SqlConnection = New SqlConnection(connString)
Private Sub cmbbackup_Click(sender As Object, e As EventArgs) Handles cmbbackup.Click
Try
SaveFileDialog1.FileName = DateAndTime.DateString + "_" + dbName
SaveFileDialog1.Filter = "SQL Server database backup files|*.bak"
SaveFileDialog1.ShowDialog()
Dim cmd As New SqlCommand("BACKUP DATABASE " & dbName & " To disk='" & SaveFileDialog1.FileName & "'", conn)
If Not conn.State = ConnectionState.Open Then
conn.Open()
End If
cmd.ExecuteNonQuery()
conn.Close()
MsgBox("The database was successfully backup to - " & System.IO.Path.GetFullPath(OpenFileDialog1.FileName))
Catch ex As Exception
MsgBox(Err.Description)
Me.Close()
End Try
End Sub
End Class
データベースはサーバー内にあり、複数のクライアントがあります。セットアップパッケージを使用してクライアントに展開します
BACKUPは常にサーバー上で実行され、ドライブはクライアントではなくサーバー上でミュートする必要があります。クライアントにサムドライブを接続して、サーバー上のデータベースをバックアップすることはできません。
また、Windowsでは、管理者のみがドライブのルートにファイルを書き込むことができることに注意してください。D:ドライブにバックアップを配置する場合は、そのフォルダーを作成し、そのフォルダーにアクセス許可を付与する必要があります。
サーバー上のデータベースには自動バックアップを構成する必要がありますが、アドホックバックアップを開始する必要があり、サーバーにアクセスできない場合は、[URLへのバックアップ]を使用してデータベースをAzureBlobストレージアカウントにバックアップできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加