問題タブ [sqlpackage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - SqlPackage.exe - Azure Db を BLOB ストレージにエクスポートする
sqlpackage.exe を使用して、エクスポート データベースを BLOB ストレージにトリガーできますか?
驚くべきことに、これを行うための参照が見つかりません。"sqlpackage /a:export" のパラメーターには、ブロブ ストレージを指定するパラメーターはなく、ファイル | メモリのみです。
現在、Powershell AzureRm コンポーネントを使用しており、そこでリクエストを行い、ステータスをループする必要があります。これはエクスポートには問題なく機能しますが、ステータス チェック リクエストが不安定であるため、スクリプトの全体的な進行状況が定期的に中断されます。
sqlpackage.exe 呼び出しは、追加のエラー処理ロジックの必要性を排除するブロッキング呼び出しになります。
洞察をありがとう
visual-studio-2015 - SSDT Publish で REVOKE CONNECT スクリプトを生成しないようにする方法
SSDT を使用してスクリプトの展開を管理し始めました。最初はスキーマ比較を使用し、展開したくない部分のチェックを外しました。パブリッシュ機能にのみ含まれる Pre-Deploy スクリプトと Post-Deploy スクリプトを使用する必要があり、除外していたビットをクリーンアップしようとしています。
パブリッシュには、スキーマ比較にはなかった 2 つの違いが追加されていますが、設定が可能な限り近いにもかかわらず、理解できないようです。
DropStatisticsNotInSource
1 つ目は、パブリッシュ スクリプトが、false に設定されていても、dacpac に存在しないテーブルの統計を削除することです。SSDT/SqlPackage drops statisticsの DeploymentFilterContributor の回答に基づいて、これを回避できました。
しかし、2番目は私を困惑させ続けています。ほとんどのアプリケーション セキュリティはロールへの付与によって行われ、環境に応じてさまざまなシステム アカウントがメンバーになりますが、開発データベースのロールに含まれていないユーザーもいます (多くの場合、管理者ですが、さまざまな権限を持つユーティリティも含まれます)。さまざまな環境にさまざまなユーザーがいます。ユーザーだけを役割にするという長期的な目標がありますが、まだそこには到達していません。それまでの間、ユーザーがドロップされないように除外する必要があります。スキーマ比較で使用したExclude Users
, ExcludeLogins
, を設定することから始めましたが、うまくいきました。ExcludeRoleMembership
ただし、パブリッシュ スクリプトでは、スクリプトを取得します(またはREVOKE CONNECT
ではありません)。DROP LOGIN
DROP USER
SqlPackage.exe を使用して DACPAC を公開するときにユーザーの削除を防止する を読み、SqlPackage.exe によって展開された dacpac でユーザーを作成すると、ログインに失敗した SqlException が発生します(これは、目的が異なる同様のスクリプトの結果のようで、回答もありません)。AgileSqlClub.DeploymentFilterContributorをIgnoreType(Login)
, IgnoreType(User)
, およびIgnoreType(RoleMembership)
,で使用しようとしましIgnoreType(Permissions)
たIgnoreSecurity
。最初の 3 つは効果がありませんでした。最後の 2 つ (同等の SSDT 構成オプションも試しました) ではGRANT
、db ロールに対して含めたいスクリプトも削除されました。
DeploymentContributor
カスタムを作成したり、デプロイ後にこれらすべてのユーザーのスクリプトを作成したりせずに、これを実行できるはずだと思います。REVOKE CONNECT
これらの呼び出しを取り除くにはどうすればよいですか?
また、Visual Studio が実際にそのパスで SqlPackage.exe を呼び出しているか、代わりにライブラリを使用しているかを誰かが知っている場合は、その情報をいただければ幸いです...自分のマシンで 5 つの SqlPackage.exe を動作させることができないようですVS が使用するビルド済みの .dacpac および .publish.xml ファイルを使用します。
参照用に完全な公開プロファイルを含めます。
VS2015 Update 3 および SSDT 14.0.61712.050 (最新だと思います)。