Das Anmeldekonto befindet sich nicht in der Veröffentlichungszugriffsliste und hat daher keine Zugriffsberechtigung auf die Veröffentlichung

Microsoft.SQLServer.2008.LoginAccountIsNotInThePublicationAccessListRule (Rule)

Knowledge Base article:

Zusammenfassung

Das Anmeldekonto befindet sich nicht in der Veröffentlichungszugriffsliste und hat daher keine Zugriffsberechtigung auf die Veröffentlichung

Ursachen

Beim Erstellen einer Veröffentlichung wird von Microsoft SQL Server eine Veröffentlichungszugriffsliste (Publication Access List, PAL) für die Veröffentlichung erstellt. Die Veröffentlichungszugriffsliste enthält eine Liste aller Anmeldungen, für die der Zugriff auf die Veröffentlichung gewährt wurde. Dieser Fehler wird angezeigt, weil die aktuelle Anmeldung nicht in der Veröffentlichungszugriffsliste für die Veröffentlichung vorhanden ist, für die Sie den angeforderte Vorgang ausführen möchten.

Lösungen

Um der Veröffentlichungszugriffsliste für eine beliebige Veröffentlichung Anmeldungen hinzuzufügen oder Anmeldungen daraus zu entfernen, verwenden Sie den SQL Server Enterprise Manager oder die gespeicherten Prozeduren sp_grant_publication_access und sp_revoke_publication_access.

Extern

Vorgehensweise: Verwalten von Anmeldenamen in der Veröffentlichungszugriffsliste (SQL Server Management Studio)

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

2

Schweregrad

Definiert den Warnungsschweregrad.

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
Das Anmeldekonto befindet sich nicht in der Veröffentlichungszugriffsliste und hat daher keine Zugriffsberechtigung auf die Veröffentlichung
{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>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>