Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden verschillende problemen beschreven die kunnen optreden wanneer u de gastgebruiker uitschakelt in de msdb-database in SQL Server.
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 2539091
Symptomen wanneer de gastgebruiker is uitgeschakeld in de msdb-database
Als u wilt dat sommige Microsoft SQL Server-functies werken, moet de gastgebruiker zijn ingeschakeld in de msdb-database. In dit artikel worden enkele problemen beschreven die kunnen optreden als u de gastgebruiker uitschakelt in de msdb-database. Het artikel bevat ook informatie over het oplossen van deze problemen.
Wanneer de gastgebruiker is uitgeschakeld in de msdb-database, treedt er mogelijk een fout op MSSQLSERVER_916 wanneer de gebruiker het knooppunt Databases in Management Studio uitvouwt of wanneer een servertoepassing verbinding probeert te maken met SQL Server. Mogelijk ondervindt u een of meer van de volgende symptomen in uw omgeving wanneer dit probleem optreedt.
Notitie
De tekst van de fout kan enigszins variƫren, afhankelijk van het scenario. De onderliggende oorzaak is echter in wezen hetzelfde. Deze oorzaak is onvoldoende bevoegdheden in de msdb-database. Deze symptomen treden op wanneer Objectverkenner probeert de status Van beheer op basis van beleid van elke database weer te geven. Objectverkenner de machtigingen van de huidige aanmelding gebruikt om een query uit te voeren op de msdb-database voor deze informatie, waardoor de fout wordt veroorzaakt.
Symptoom 1
Wanneer in SQL Server 2012- en hogeromgevingen een gebruiker die geen lid is van de vaste serverrol Sysadmin in SQL Server en anders niet de juiste machtigingen in msdb krijgt, probeert het knooppunt Databases of een van de mappen onder dat knooppunt uit te vouwen, wordt er een foutbericht weergegeven dat er ongeveer als volgt uitziet:
Kan het aangevraagde dialoogvenster niet weergeven. AANVULLENDE INFORMATIE: Kan het gevraagde dialoogvenster niet weergeven. (SqlMgmt) Er is een uitzondering opgetreden tijdens het uitvoeren van een Transact-SQL-instructie of batch. (Microsoft.SqlServer.ConnectionInfo)
De gebruikersnaam> van de server-principal <heeft geen toegang tot de database msdb in de huidige beveiligingscontext. (Microsoft SQL Server, fout: 916)
Symptoom 2
In SQL Server 2008- en SQL Server 2008 R2-omgevingen, wanneer een gebruiker die geen lid is van de vaste serverrol Sysadmin in SQL Server en anders niet de juiste machtigingen in msdb krijgt, probeert het knooppunt Databases of een van de mappen onder dat knooppunt uit te vouwen, een foutbericht dat er ongeveer als volgt uitziet:
'Ophalen van gegevens voor deze aanvraag is mislukt. (Microsoft.SqlServer.Manager.Sdk.Sfc)
Aanvullende informatie:
Er is een uitzondering opgetreden tijdens het uitvoeren van een Transact-SQL-instructie of batch.
(Microsoft.SqlServer.ConnectionInfo)
De server-principal-servernaam <> heeft geen toegang tot de database msdb in de huidige beveiligingscontext. (Microsoft SQL Server, fout: 916)
Notitie
Het uitbreiden van het databaseknooppunt is slechts een van de activiteiten waarvoor verbindingsmachtigingen voor het gastaccount met de msdb-database zijn vereist. Er kan een vergelijkbare fout optreden bij elke activiteit waarvoor minimaal minimale toegang tot de msdb-database is vereist.
Het probleem bepalen
Als u wilt bepalen of de gastgebruiker correct is geconfigureerd in de msdb-database, voert u de volgende query uit als lid van de vaste serverfunctie sysadmin:
USE msdb;
SELECT prins.name AS grantee_name, perms.*
FROM sys.database_permissions AS perms
JOIN sys.database_principals AS prins
ON perms.grantee_principal_id = prins.principal_id
WHERE prins.name = 'guest' AND perms.permission_name = 'CONNECT';
GO
Als u een resultatenset ontvangt die lijkt op het volgende, heeft de gastgebruiker de benodigde machtigingen.
| grantee_name | class | class_desc | major_id | minor_id | grantee_principal_id | grantor_principal_id | type | permission_name | staat | beschr_staat |
|---|---|---|---|---|---|---|---|---|---|---|
| gast | 0 | DATABASE | 0 | 0 | 2 | 1 | CO | VERBINDEN | G | GRANT |
Als u een lege resultatenset ontvangt of als weigeren state_desc wordt weergegeven in de resultatenset die hier wordt vermeld, wordt de gastgebruiker uitgeschakeld in de msdb-database. Mogelijk krijgt u fout 916 wanneer u verbinding maakt met een database.
Het probleem oplossen
Voer de volgende query uit in SQL Server Management Studio als lid van de vaste serverrol sysadmin om het probleem op te lossen:
USE msdb;
GRANT connect TO guest;
GO