Azure SQL DBにデプロイするSSDTプロジェクトがあります。最近、外部テーブルを追加しました。これには、次の外部データソースが必要です。
CREATE EXTERNAL DATA SOURCE [data_warehouse]
WITH (
TYPE = RDBMS,
LOCATION = N'mydb.database.windows.net',
DATABASE_NAME = N'MainDW',
CREDENTIAL = [dw_reader]
);
これを.sqlprojにインポートすると、資格情報が存在しないというメッセージが表示され、さらに追加すると、マスターキーが存在しないというメッセージが表示されます。問題は、これらの秘密をSSDTプロジェクトに保存したくないことです。 AzureキーボルトまたはAzure Decopsにシークレットを保存するその他の方法からオーバーライドして取得できるダミーまたはデフォルトをどのように保存しますか?
実験後、SSDTのあらゆる種類のシークレットは、オブジェクトが作成されたときにのみ使用され、更新されないようです。
したがって、sqlprojにCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password A';
が含まれていて、マスターキーが存在しない場合、マスターキーはそのパスワードで作成されます。ただし、後でデータベースでALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
を実行してから、sqlprojをデータベースに再デプロイしても、マスターキーは再生成されません。