0

C# を使用して (SMO を使用したり権限を変更したりせずに) プログラムで SQL Server データベースからバックアップ ファイルを作成することは可能ですか? SQL Server には*.bakユーザー フォルダーにファイルを作成 (書き込み) する権限がありませんが、プログラムはこれを行うことができます。そのため、ファイルに書き込むことができるデータベースのダンプを提供するデータベースへのクエリを作成したいと考えています。

そんな感じ:

SqlCommand sc = new SqlCommand(@"backup database test1 to stream", cnnct);
SqlDataReader r = sc.ExecuteReader();
while(r.read())file.WriteLine(reader.GetString(0));
4

2 に答える 2

3

これは不可能であり、良い考えでもありません。MSSQL データベースは複雑すぎて、確実に SQL としてダンプできません。これを常に正しく行うツールはありません。

これに対処する正しい方法は、SQL Server ユーザーにそのフォルダーへのアクセス権を与えることです。使用されているユーザー (おそらく procexp.exe?) を見つけて、必要な権限を追加します。

于 2013-03-18T10:47:46.760 に答える
0

はい、そうですが、あなたが思っているよりもずっと複雑です。VDI 仕様コンポーネントを実装する必要があります (これは定義上ネイティブ コードであり、マネージドではありません)。次に、この VDI を SQL Server にロードして、そこにバックアップできます。SQL Server での VSS および VDI バックアップに関する光の照射を参照してください。SQL Server Compressed Backupを見てください。

もちろん、これがあなたの望むものである可能性はほとんどありません。VDI を実装している人々は、そのような質問をする必要はありません。それで、あなたが本当にやろうとしていることは何ですか?あなたが望むのは、 SMO Scripterがあるデータベースをスクリプト化することです。

于 2013-03-18T13:11:23.770 に答える