Sql-Server-2012

如何在 MS SQL Server 中定位資源系統數據庫

  • July 29, 2018

有一個名為資源數據庫的數據庫,我知道它是只讀的,包含有關係統對象的資訊,並且不保存任何與使用者相關的數據或元數據。我正在使用 SSMS 來管理我的數據庫實例,我只能看到四個系統數據庫 - master、model、msdb、tempdb。我想知道在哪裡可以找到使用 SSMS 的資源數據庫?或者資源數據庫是否故意對使用者不可見?

謝謝你的時間。

mssqlsystemresource數據庫是故意隱藏的。這mssqlsystemresource在很大程度上是一個實現細節,它允許 SQL Server 安裝和升級過程部署新的系統對象版本,而無需像在 SQL Server 2000 和更早版本中所做的那樣在主數據庫中重新創建對象。

mssqlsystemresource數據庫文件的物理位置是眾所周知的記錄位置。在 SQL Server 2008 和更高版本中,這是實例 BINN 文件夾(例如 C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn)以及其他 SQL Server 二進製文件。在 SQL Server 2005 中,mssqlsystemresource它們與主數據庫文件位於同一數據文件夾中。

為了學習,您可以將mssqlsystemresource.mdf和複製mssqlsystemresource.ldf到使用者數據文件夾,更改文件權限,並使用不同的數據庫名稱附加數據庫。這應該只在一個隔離的測試實例上完成,並且允許您mssqlsystemresource使用 SSMS 輕鬆查看數據庫中的系統對象。

CREATE DATABASE mssqlsystemresource_copy
   ON(NAME='data', FILENAME='D:\SqlDataFiles\mssqlsystemresource.mdf')
   LOG ON(NAME='log', FILENAME='D:\SqlDataFiles\mssqlsystemresource.ldf')
   FOR ATTACH;
GO

引用自:https://dba.stackexchange.com/questions/213494