SQL Server"无法打开明确指定的数据库"事件代码18456

时间:2018-01-10 17:01:37

标签: sql-server sql-server-2016

我们最近从我们的系统中删除了一个很少使用过的数据库,并试图在我们的代码库中删除它的所有引用。即使有人意外离开,也不能经常打电话。这对我们来说是一个非常边缘的数据库。 (我们还有其他一些使用得更广泛的人)

从那时起,我们每天都会持续数千次这样的Windows事件(我们的网站几乎每天24小时都会通过数据库连接获得繁重的流量)。

instance of Win32_NTLogEvent
{
    Computer = "------.-----.com";
    EventCode = 18456;
    EventIdentifier = 3221243928;
    Logfile = "Application";
    RecordNumber = 8799305;
    SourceName = "MSSQL$---";
    TimeGenerated = "20180110164152.000000-000";
    TimeWritten = "20180110164152.000000-000";
    Type = "Audit Failure";
    EventType = 5;
    User = "---\web";
    Category = 4;
    CategoryString = "Logon";
    Message = "Login failed for user '---\web'. Reason: Failed to open the explicitly specified database 'MyDB'. [CLIENT: ---]";
    InsertionStrings = {"---\pciweb_srv", " Reason: Failed to open the explicitly specified database 'MyDB'.", " [CLIENT: ---]", "-----"};
};

我检查了用户登录映射,并且没有与此数据库的任何关联。我不确定何时触发此登录事件。

我还能在哪里找到这个丢失数据库的引用?此错误/事件似乎不是来自代码库中的内容,而是更多来自SQL Server的配置设置。但是,我无法访问生产代码(经典ASP),只能访问我们的git仓库中的内容。因此,如果事情不在其中,那么这是唯一有意义的事情,如果它是代码。

但是我无法肯定地说,因为我不是数据库管理员,而只是一个试图帮助我们的Ops团队跟踪此问题的开发人员。

1 个答案:

答案 0 :(得分:1)

  

无法打开明确指定的数据库“ MyDB ”。

将您的代码仓库和配置搜索为“MyDB”的任何引用作为被调用的数据库并将其删除。