MSSQLSERVER_916MSSQLSERVER_916

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

DettagliDetails

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 916916
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent SQLEngineSQLEngine
Nome simbolicoSymbolic Name NOTUSERNOTUSER
Testo del messaggioMessage Text L'entità server "%.ls" non è in grado di accedere al database "%.*ls" nel contesto di sicurezza corrente.The server principal "%.ls" is not able to access the database "%.*ls" under the current security context.

SpiegazioneExplanation

L'accesso non dispone delle autorizzazioni sufficienti per connettersi al database denominato.The login does not have sufficient permissions to connect to the named database. Gli account di accesso che possono connettersi a questa istanza di SQL ServerSQL Server, ma che non dispongono di autorizzazioni specifiche in un database ricevono le autorizzazioni di utente guest.Logins that can connect to this instance of SQL ServerSQL Server but that do not have specific permissions in a database receive the permissions of the guest user. Si tratta di una misura di sicurezza per impedire agli utenti di un database di connettersi ad altri database per cui non dispongono di privilegi.This is a security measure to prevent users in one database from connecting to other databases where they do not have privileges. È possibile ricevere questo messaggio di errore quando l'utente guest non dispone delle autorizzazioni CONNECT per il database denominato e la proprietà TRUSTWORTHY non è impostata.This error message can occur when the guest user does not have CONNECT permission to the named database and the trustworthy property is not set. È possibile ricevere questo messaggio di errore quando l'utente guest non dispone delle autorizzazioni CONNECT per il database denominato.This error message can occur when the guest user does not have CONNECT permission to the named database.

Quando l'autorizzazione CONNECT al database msdb viene negata o revocata, SQL Server Management StudioSQL Server Management Studio può ricevere questo errore quando Esplora oggetti tenta di mostrare lo stato di gestione basata su criteri di ciascun database.When CONNECT permission to the msdb database is denied or revoked, SQL Server Management StudioSQL Server Management Studio can receive this error when Object Explorer tries to show the Policy Based Management status of each database. Esplora oggetti usa le autorizzazioni dell'accesso corrente per cercare nel database msdb queste informazioni, operazione che causa l'errore.Object Explorer uses the permissions of the current login to query the msdb database for this information, which causes the error. Viene inoltre visualizzato il messaggio di errore seguente:The following error message also occurs:

Impossibile recuperare i dati per la richiesta specificata.Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)(Microsoft.SqlServer.Management.Sdk.Sfc)

Azione dell'utenteUser Action

Avviso

Prima di eludere questa misura di sicurezza, assicurarsi di sapere quali utenti sono autenticati in vari database.Before circumventing this security measure be sure to have a clear understanding of users are authenticated in various databases. I metodi seguenti consentono agli utenti che dispongono delle autorizzazioni per un database di connettersi ad altri database che potrebbero esporre i dati a utenti malintenzionati.The following methods may allow users that have permissions in one database to connect to other databases which could expose data to a malicious user. Quando i database indipendenti sono abilitati, i passaggi seguenti consentono ai proprietari di un database di concedere l'accesso all'altro database nell'istanza di SQL ServerSQL Server.When contained databases are enabled, the following steps can allow database owners in one database to grant access to other database on the instance of SQL ServerSQL Server.

È possibile connettersi al database in uno dei modi seguenti:You can connect to the database in one of the following ways:

  • Concedere l'accesso specifico al database denominato.Grant the specific login access to the named database. Nell'esempio seguente viene concesso l'accesso Adventure-Works\Larry al database msdb.The following example grants the login Adventure-Works\Larry access to the msdb database.

    USE msdb ;USE msdb ;

    GOGO

    GRANT CONNECT TO [Adventure-Works\Larry] ;GRANT CONNECT TO [Adventure-Works\Larry] ;

  • Concedere l'autorizzazione CONNECT al database denominato nel messaggio di errore per l'utente guest.Grant the CONNECT permission to the database named in the error message for the guest user. Nell'esempio seguente viene concessa l'autorizzazione CONNECT per il database msdb per l'utente guest.The following example grants the CONNECT permission to the msdb database for the user guest.

    USE msdb ;USE msdb ;

    GOGO

    GRANT CONNECT TO guest ;GRANT CONNECT TO guest ;

  • Abilitare la proprietà TRUSTWORTHY per il database che ha autenticato l'utente.Enable the TRUSTWORTHY property on the database that has authenticated the user.

    ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;