現象
次のような状況で問題が発生します。
-
Sql Server 2016 および2017に SQL CLR 関数があります。
-
CLR 関数は、EXECUTE AS ステートメントの呼び出しなどの偽装呼び出しを通じて Transact-sql ステートメントを呼び出します。
このシナリオでは、実行に失敗し、次のエラーメッセージが表示されます。
Msg 6522、レベル16、状態1、プロシージャ PrcedureName、行 0 [バッチ開始行 LineNumber]
ユーザー定義のルーチンまたは "ProcedureName" 集計の実行中に .net Framework エラーが発生しました。
SqlException: サーバープリンシパル "ログイン" は、現在のセキュリティコンテキストで、データベース "Databasename" にアクセスできません。
解決方法
この修正プログラムは、SQL Server 2017 の 累積的な更新プログラム 1 に含まれています。
SQL Server 2016 の Service pack 情報
この問題は、SQL Server 用の次の service pack で修正されています。
SQL Server 2017 ビルドについて
SQL Server 2017 用の新しいビルドごとに、以前のビルドで行われたすべての修正プログラムとセキュリティの修正が含まれています。 SQL Server 2017 用の最新のビルドをインストールすることをお勧めします。
サービスパックは累積されます。 Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービスパックの最新の service pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新の service pack をインストールする前に、以前のサービスパックをインストールする必要はありません。 最新の service pack と最新の累積的な更新プログラムの詳細については、次の記事の表1を参照してください。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Microsoft でソフトウェアの更新について説明する 用語 について説明します。