916: The server principal is not able to access the database under the current security context
SQL ServerWas bedeutet das?
Ein Login wollte auf eine bestimmte Datenbank zugreifen, hat im aktuellen Sicherheitskontext aber keinen Zugriff darauf. Das Login kann sich mit dem Server verbinden, hat in der Zieldatenbank aber keinen zugehörigen Benutzer bzw. keine Berechtigung.
Ursache
Das Login hat in der Datenbank keinen zugeordneten Benutzer (verwaist oder nie angelegt), der Datenbankzugriff ist eingeschränkt, oder das Gastkonto ist deaktiviert. Ein häufiger Fall ist der SSMS-Objekt-Explorer, der Metadaten einer Datenbank lesen will, auf die das Login keinen Zugriff hat.
Lösung
Lege in der Zieldatenbank einen Benutzer für das Login an und erteile die nötigen Berechtigungen: USE [db]; CREATE USER [login] FOR LOGIN [login]; und weise die passenden Rollen/Berechtigungen zu. Gibt es einen verwaisten Benutzer, ordne ihn mit ALTER USER ... WITH LOGIN = ... zu. Wird der Zugriff wirklich benötigt, füge ihn der passenden Datenbankrolle hinzu; andernfalls ist der Fehler das erwartete Verhalten (kein Zugriff auf diese Datenbank).