916: The server principal is not able to access the database under the current security context(サーバープリンシパルは現在のセキュリティコンテキストでデータベースにアクセスできない)
SQL Server意味
ログインが特定のデータベースへのアクセスを試みたが、現在のセキュリティコンテキストではアクセス権がない。ログインはサーバーに接続できるが、対象データベースに対応するユーザー/権限がない。
原因
ログインにデータベース内のマッピングされたユーザーがない (孤立しているか作成されていない)、データベースへのアクセスが制限されている、または guest アカウントが無効になっている。よくあるケースは、SSMS のオブジェクトエクスプローラーが、ログインにアクセス権のないデータベースのメタデータを読み取ろうとすることである。
対処方法
対象データベースにログイン用のユーザーを作成し、必要な権限を付与する: USE [db]; CREATE USER [login] FOR LOGIN [login]; 続いて適切なロール/権限を割り当てる。孤立ユーザーが存在する場合は ALTER USER ... WITH LOGIN = ... でマッピングする。アクセスが本当に必要であれば適切なデータベースロールに追加する。そうでなければ、このエラーは想定された動作である (そのデータベースへのアクセス権がない)。