2017-05-29 10 views
-2

これは私の問題です。デスクトップまたはドライブC:\の任意のフォルダの場所にデータベースをバックアップします。残念ながら、私はいつも「アクセスが拒否されました」というエラーを受け取ります。私はD:\やE:\のような他のドライブに保存しても問題はありません。サーバー権限を変更せずにデータベースをバックアップすることは可能ですか?好ましくは、C#を使用してコードを使用します。サーバーのアクセス許可を変更せずにデスクトップ上のデータベースをバックアップすることはできますか?

私はTransact-SQLを使用しています。

私はすでに管理者にアプリケーションを実行しようとした
BACKUP DATABASE dbTest 
TO DISK = 'C:\Desktop\dbTest.Bak' (Let's assume this is the path to desktop) 

が、結果は

+0

SQL ServerまたはSybase? – jarlh

+0

DBインスタンスを実行しているデータベースユーザは、Cドライブに書き込む権利を持っていなければなりません。 –

+0

「デスクトップ」とはどういう意味ですか? SQL Serverバックアップがクライアントではなくサーバーに対してローカルであることは分かりますか?また、インスタンスを実行するユーザーには、指定されたディレクトリに書き込む権限が必要です。 – CodeCaster

答えて

0

「アクセスが拒否されました」まだあなたがバックアップSQL Serverデータベース、パス:

私のクエリは、このようなものですあなたはクライアントではなくサーバー上にあります(UNCではなくローカルであると仮定します)。

したがって、現在ログオンしているユーザーのデスクトップにバックアップファイルを保存する場合(コンソールまたはリモートデスクトップからサーバーへのアクセスを想定)、SQL Serverインスタンスを実行しているユーザーは、指定されたパス。

デフォルトでは、ユーザーX(SQL Serverユーザー)はユーザーY(リモートデスクトップユーザー)が所有するディレクトリに書き込むことはできません。

ので:サーバーのアクセス許可を変更することなく

+0

別の方法がありますか?私のアプリはこのようなものになり、ユーザーはバックアップを保存するファイルの場所を選択します。バックアップはC:\以外の他のドライブに正常に保存されます。 –

+0

あなたがやろうとしていることはまだ非常に不明です。あなたのユースケースは何ですか?なぜユーザーが場所を選択できるのですか?この場所は、データベースサーバーまたはユーザーのマシン上でどこにありますか?しかし、再び、パーミッション=書き込みなし。それは変わることはありません。 – CodeCaster

+0

申し訳ありませんが、詳細の不足のため、とにかく...(1)私の目標は、データベースのバックアップを.bakファイル形式で作成することです。 (2)彼らがフラッシュドライブやどこにいてもそれを保存できる理由。 (3)データベースはローカルデータベースであり、その場所はユーザのマシンである。 –

関連する問題