MSSQL on Linux: 사용자 기본 데이터베이스를 열 수 없습니다. 로그인하지 못했습니다.

Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_1_5_Rule (Rule)

클라이언트가 데이터베이스 컨텍스트를 지정하지 않고 SQL Server 인스턴스에 연결하는 경우 로그인에 대해 정의된 기본 데이터베이스가 사용됩니다. 어떤 이유로 인해 이 데이터베이스를 사용할 수 없는 경우 위의 메시지가 나타납니다.

Knowledge Base article:

요약

클라이언트가 데이터베이스 컨텍스트를 지정하지 않고 SQL Server 인스턴스에 연결하는 경우 로그인에 대해 정의된 기본 데이터베이스가 사용됩니다. 어떤 이유로 인해 이 데이터베이스를 사용할 수 없는 경우 위의 메시지가 나타납니다.

참고: 로그인이 SQL Server에서도 로그인으로 정의된 하나 이상의 Linux 그룹의 멤버인 경우, 이 그룹들에 대한 기본 데이터베이스 중에서 하나가 사용될 수 있습니다. 로그인할 때 어느 기본 데이터베이스가 선택될지 예측하는 확실한 방법은 없습니다. 따라서 로그인 계정의 그룹 멤버를 확인한 다음 모든 그룹에 대해 설정된 기본 데이터베이스가 모두 사용 가능한지 확인하는 것이 중요합니다.

해결 방법

기본 데이터베이스에 액세스할 수 있도록 만들거나 특정 데이터베이스를 사용하지 못하도록 해야 합니다. 다음과 같은 선택 사항이 있습니다.

기본 데이터베이스에 대한 자세한 내용은 온라인 설명서의 "sp_defaultdb"와 Microsoft 기술 자료 문서 307864를 참조하세요.

재정의 가능한 매개 변수

이름

설명

기본값

사용

워크플로 사용하거나 사용하지 않도록 설정합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

300

우선 순위

알림 우선 순위를 정의합니다.

1

심각도

알림 심각도를 정의합니다.

2

동기화 시간

동기화 시간

 

시간 제한(초)

여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다.

200

데이터베이스 연결 시간 제한(초)

워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL on Linux: 사용자 기본 데이터베이스를 열 수 없습니다. 로그인하지 못했습니다.
{0}
CommentMom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';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_open_user_default_database._Login_failed_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';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>4064</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_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>