MSSQL sur Linux : Impossible de déterminer le compte de service pour l'instance SQL Server

Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule (Rule)

Cette erreur se produit lorsqu’une instruction Transact-SQL contient des apostrophes ou des guillemets doubles qui ne correspondent pas. Le paramètre SET QUOTED_IDENTIFIER détermine les combinaisons d’apostrophes ou de guillemets doubles valides. Pour plus d’informations sur SET QUOTED_IDENTIFIER, voir « SET QUOTED_IDENTIFIER » dans la documentation en ligne.

Knowledge Base article:

Causes

Cette erreur se produit lorsqu’une instruction Transact-SQL contient des apostrophes ou des guillemets doubles qui ne correspondent pas. Le paramètre SET QUOTED_IDENTIFIER détermine les combinaisons d’apostrophes ou de guillemets doubles valides. Pour plus d’informations sur SET QUOTED_IDENTIFIER, voir « SET QUOTED_IDENTIFIER » dans la documentation en ligne.

Chaque apostrophe ou guillemet double utilisé pour marquer le début d’une chaîne littérale doit posséder une apostrophe ou un guillemet double du même type pour marquer la fin de la chaîne littérale. Une apostrophe ne peut pas être couplée à un guillemet double pour délimiter une chaîne littérale unique.

Les guillemets doubles qui font partie d’une chaîne littérale sont gérés de manière différente. Si une apostrophe (') fait partie d’une chaîne littérale, elle peut être représentée par deux apostrophes accolées (''). Si une chaîne littérale est délimitée par des guillemets doubles et si la valeur OFF est affectée à SET QUOTED_IDENTIFIER, la chaîne peut contenir des apostrophes. Si une chaîne littérale est délimitée par des apostrophes et si la valeur ON ou OFF est affectée à SET QUOTED_IDENTIFIER, la chaîne peut contenir des guillemets doubles.

Si vous ne placez pas le type et le nombre d’apostrophes ou de guillemets doubles de manière appropriée dans votre code, SQL Server renvoie l’erreur ci-dessus, ainsi que l’erreur « Syntaxe incorrecte, vers % » le cas échéant.

Pour plus d’informations sur la gestion des guillemets dans le code, voir les articles suivants de la Base de connaissances Microsoft :

311023 et 311021.

Pour obtenir des exemples sur l'utilisation des apostrophes ou des guillemets doubles, voir « SET QUOTED_IDENTIFIER » dans la documentation en ligne.

Résolutions

SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER')

En fonction de vos besoins, vous pouvez être amené à modifier ce paramètre à l’aide de SET QUOTED_IDENTIFIER ON/OFF.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

300

Priorité

Définit la priorité de l'alerte.

1

Gravité

Définit la gravité de l'alerte.

1

Heure de synchronisation

Heure de synchronisation

 

Délai d'expiration (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué.

200

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL sur Linux : Impossible de déterminer le compte de service pour l'instance SQL Server
{0}
CommentMom2017ID='{9F3F26E8-EB1A-479F-A53F-BA44C789022D}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{9F3F26E8-EB1A-479F-A53F-BA44C789022D}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>14353</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>