Du bör inte inaktivera gästanvändaren i msdb-databasen i SQL Server
Den här artikeln beskriver olika problem som kan uppstå när du inaktiverar gästanvändaren i msdb-databasen i SQL Server.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 2539091
Symptom när gästanvändaren är inaktiverad i msdb-databasen
För att vissa Microsoft SQL Server funktioner ska fungera måste gästanvändaren vara aktiverad i msdb-databasen. Den här artikeln beskriver några problem som kan uppstå om du inaktiverar gästanvändaren i msdb-databasen. Artikeln innehåller också information om hur du löser dessa problem.
När gästanvändaren är inaktiverad i msdb-databasen kan du få ett felmeddelande MSSQLSERVER_916 när användaren expanderar noden Databaser i Management Studio expanderar eller när ett serverprogram försöker ansluta till SQL Server. Du kan uppleva ett eller flera av följande symptom i din miljö när det här problemet uppstår.
Obs!
Feltexten kan variera något beroende på scenariot. Den underliggande orsaken är dock i stort sett densamma. Den orsaken är otillräcklig behörighet i msdb-databasen. Dessa symtom uppstår när Object Explorer försöker visa statusen principbaserad hantering för varje databas. Object Explorer använder behörigheterna för den aktuella inloggningen för att fråga msdb-databasen om den här informationen, vilket orsakar felet.
Symptom 1
I SQL Server 2012 och senare miljöer, när en användare som inte är medlem i sysadmins fasta serverroll i SQL Server och inte på annat sätt beviljas lämpliga behörigheter i msdb försöker expandera noden Databaser eller någon av mapparna under den noden, får de ett felmeddelande som liknar följande:
Det går inte att visa den begärda dialogrutan. YTTERLIGARE INFORMATION: Det går inte att visa den begärda dialogrutan. (SqlMgmt) Ett undantag inträffade när en Transact-SQL-instruktion eller batch kördes. (Microsoft.SqlServer.ConnectionInfo)
Användarnamnet för serverns huvudnamn <> kan inte komma åt databasen msdb under den aktuella säkerhetskontexten. (Microsoft SQL Server, Fel: 916)
Symptom 2
I SQL Server 2008- och SQL Server 2008 R2-miljöer, när en användare som inte är medlem i den fasta Sysadmin-serverrollen i SQL Server och inte på annat sätt beviljas lämpliga behörigheter i msdb försöker expandera noden Databaser eller någon av mapparna under noden får de ett felmeddelande som liknar följande:
Det gick inte att hämta data för den här begäran. (Microsoft.SqlServer.Manager.Sdk.Sfc)
Ytterligare information:
Ett undantag inträffade när en Transact-SQL-instruktion eller batch kördes.
(Microsoft.SqlServer.ConnectionInfo)
Serverhuvudnamnet <servernamn> kan inte komma åt databasen "msdb" under den aktuella säkerhetskontexten. (Microsoft SQL Server, Fel: 916)
Obs!
Att expandera databasnoden är bara en av de aktiviteter som kräver anslutningsbehörighet för gästkontot till msdb-databasen. Ett liknande fel kan inträffa med alla aktiviteter som kräver minst minimal åtkomst till msdb-databasen.
Så här fastställer du problemet
För att avgöra om gästanvändaren är korrekt konfigurerad i msdb-databasen kör du följande fråga som medlem i den fasta serverrollen 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
Om du får en resultatuppsättning som liknar följande har gästanvändaren de behörigheter som krävs.
grantee_name | Klass | class_desc | major_id | minor_id | grantee_principal_id | grantor_principal_id | Typ | permission_name | Statligt | state_desc |
---|---|---|---|---|---|---|---|---|---|---|
Pensionat | 0 | DATABAS | 0 | 0 | 2 | 1 | CO | ANSLUTA | G | BEVILJA |
Om du får antingen en tom resultatuppsättning eller om state_desc
visar NEKA i resultatuppsättningen som nämns här inaktiveras gästanvändaren i msdb-databasen. Du kan få fel 916 när du ansluter till en databas.
Så här löser du problemet
Lös problemet genom att köra följande fråga i SQL Server Management Studio som medlem i den fasta serverrollen sysadmin:
USE msdb;
GRANT connect TO guest;
GO
Referenser
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för