適用対象:
- 2026 年 4 月以降の SQL Server 2025 CU および GDR の更新プログラム
- 2026 年 3 月以降の SQL Server 2022 CU および GDR の更新プログラム
- 2026 年 4 月以降の SQL Server 2019 CU および GDR の更新プログラム
- 2026 年 4 月以降の SQL Server 2017 CU および GDR の更新プログラム
- SQL Server 2016 SP3 および Azure Connect Pack GDR 更新プログラム (2026 年 4 月以降)
- Azure SQL Managed Instance
まとめ
この記事では、 MSDASQL (OLE DB Provider for ODBC Drivers) プロバイダーを使用し、プロバイダー文字列を指定するリンク サーバー クエリが失敗し、エラー 7416 が生成されるという既知の問題について説明します。 この記事では、更新プログラムをロールバックせずにリンク サーバーの接続を復元する回避策についても説明します。
Symptoms
MSDASQL プロバイダーを使用し、プロバイダー文字列 (@provstr) を指定するリンク サーバー クエリは失敗し、sysadmin 固定サーバー ロールのメンバーではないユーザーがクエリを実行すると、次のエラー メッセージが返されます。
メッセージ 7416、レベル 16
ログイン マッピングが存在しないので、リモート サーバーへのアクセスが拒否されました。
リンク サーバーとログイン マッピングが正しく構成されている場合でも、エラーが発生する可能性があります。
原因
データベース エンジンのより厳密な接続検証チェックでは、以前のビルドでこれらの接続が許可されている場合でも、MSDASQL プロバイダーを使用する特定のリンク サーバー構成の接続を拒否できます。
対処法
更新プログラムをロールバックせずにこの問題を回避するには、次のいずれかの方法を使用します。
- 構成でプロバイダー文字列 (
@provstr) が必要ない場合は、リンク サーバー定義から削除します。 - プロバイダー文字列 (
User ID) に@provstrエントリを追加します。 たとえば、User ID=<value>を設定します。 プロバイダー文字列にもUIDを含める必要があります。
影響を受けるユーザーに sysadmin アクセス許可を付与することで、エラーを防ぐこともできます。 ただし、この方法は使用しないことをお勧めします。