MSSQL en Linux: no se puede determinar la cuenta de servicio para la instancia de SQL Server

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

Este error se produce cuando una instrucción Transact-SQL contiene comillas simples o dobles sin correspondencia. La configuración de SET QUOTED_IDENTIFIER determinará las combinaciones válidas de comillas simples y dobles. Para obtener más información acerca de SET QUOTED_IDENTIFIER, vea el tema sobre SET QUOTED_IDENTIFIER en los Libros en pantalla.

Knowledge Base article:

Causas

Este error se produce cuando una instrucción Transact-SQL contiene comillas simples o dobles sin correspondencia. La configuración de SET QUOTED_IDENTIFIER determinará las combinaciones válidas de comillas simples y dobles. Para obtener más información acerca de SET QUOTED_IDENTIFIER, vea el tema sobre SET QUOTED_IDENTIFIER en los Libros en pantalla.

Por cada comilla simple o doble de apertura utilizada para indicar el comienzo de una cadena literal, debe existir una comilla de cierre del mismo tipo para indicar el final de la cadena literal. Las comillas simples no se pueden usar junto con las comillas dobles para delimitar una misma cadena literal.

Las comillas que forman parte de la cadena literal se administran de forma diferente. Si una comilla simple (') forma parte de la cadena literal, se puede representar mediante dos comillas simples (''). Si una cadena literal está delimitada por comillas dobles y SET QUOTED_IDENTIFIER tiene el valor OFF, la cadena puede contener comillas simples incrustadas, como apóstrofos. Si una cadena literal está delimitada por comillas simples y SET QUOTED_IDENTIFIER tiene el valor ON u OFF, la cadena puede contener comillas dobles incrustadas.

Si no coloca el tipo y el número correctos de comillas en todas las partes del código, SQL Server devolverá el error anterior, probablemente junto con un error de "Sintaxis incorrecta cerca de %".

Para obtener más información acerca de la administración de comillas en el código, vea estos artículos de Microsoft Knowledge Base:

311023 y 311021.

Para obtener ejemplos del uso de las comillas, vea el tema sobre SET QUOTED_IDENTIFIER en los Libros en pantalla.

Resoluciones

SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER')

Dependiendo de sus necesidades, puede que necesite cambiar la configuración mediante los valores ON/OFF de SET QUOTED_IDENTIFIER.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

300

Prioridad

Define la prioridad de alerta.

1

Gravedad

Define la gravedad de alerta.

1

Hora de sincronización

Hora de sincronización

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

200

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL en Linux: no se puede determinar la cuenta de servicio para la instancia de 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>
<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>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>