L'account di accesso non dispone dell'autorizzazione di accesso alla pubblicazione perché non è incluso nell'elenco di accesso alla pubblicazione

Microsoft.SQLServer.2008.LoginAccountIsNotInThePublicationAccessListRule (Rule)

Knowledge Base article:

Riepilogo

L'account di accesso non dispone dell'autorizzazione di accesso alla pubblicazione perché non è incluso nell'elenco di accesso alla pubblicazione.

Cause

Quando si crea una pubblicazione in Microsoft SQL Server, viene creato anche il relativo elenco di accesso alla pubblicazione. Tale elenco contiene tutti gli account di accesso che dispongono dell'autorizzazione di accesso alla pubblicazione. Questo errore viene generato quando l'account di accesso corrente non è incluso nell'elenco di accesso relativo alla pubblicazione sulla quale si sta tentando di eseguire l'operazione richiesta.

Soluzioni

Per aggiungere o eliminare account di accesso nell'elenco di accesso relativo a una pubblicazione, utilizzare SQL Server Enterprise Manager o le stored procedure sp_grant_publication_access e sp_revoke_publication_access.

Risorse esterne

Procedura: Gestione degli account nell'elenco di accesso alla pubblicazione (SQL Server Management Studio)

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
L'account di accesso non dispone dell'autorizzazione di accesso alla pubblicazione perché non è incluso nell'elenco di accesso alla pubblicazione
{0}

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2008.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2008.LoginAccountIsNotInThePublicationAccessListRule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2008.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<PublisherName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</PublisherName>
<EventNumber>21049</EventNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.LoginAccountIsNotInThePublicationAccessListRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>