プレビュー機能となりますが、SQL Dataabse でデータベースレベルのマネージド ID のサポートがアナウンスされました。
- Public Preview: Support database-level managed identity (including FIC) in Create Database Scoped Credential T-SQL
- Azure SQL Database (preview) でデータベースレベルのマネージドアイデンティティを使おう
今までは、論理サーバーに対してマネージド ID を付与することで、外部リソースへのアクセスを行っていました。
この場合、論理サーバー内に含まれるすべてのデータベースが同一のマネージド ID を共有することになるため、「一部のデータベースでのみマネージド ID の利用が必要」といった場合でも、論理サーバーに対してマネージド ID を有効にし、マネージド ID の利用が不要なデータベースについても利用することができる状態とする必要がありました。
これが、特定のデータベースでのみマネージド ID を有効化することができるようになり、マネージド ID が不要なデータベースについては、利用を許可しないという設定が可能となりました。
データベース レベルのマネージド ID の使用には、現時点ではいくつかの制限あるようです。
- ユーザー割り当てマネージド ID のみ設定可能
- 単一のユーザー割り当てマネージド ID のみデータベースに設定可能
- 現時点では、Azure Portal では設定できず、CLI を使用して設定する必要がある
- 「送信認証」でのみ使用可能
- sp_invoke_external_rest_endpoint では使用できない
- 「データ仮想化」に関する次の機能で活用できる
- CREATE EXTERNAL DATA SOURCE
- CREATE EXTERNAL TABLE
- OPENROWSET
論理サーバーレベルのマネージド ID では実現できなかった、テナント間のストレージアクセスについてもサポートされているため、他のテナントのストレージをマネージド ID (フェデレーション資格情報) によりアクセスさせるということも可能となるようです。
(BYOK の TDE を使用している場合は、既にフェデレーション資格情報を持っている状態となっているため、本機能の利用については設定に注意が必要という記載があります)