成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

系統庫-SQL Server Master探究

數據庫 SQL Server
Master數據庫包含有關 SQL Server 系統的所有信息,包括有關初始化的信息、配置設置、與實例相關的元數據、有關所有其他數據庫的信息,例如數據庫文件的位置等。

概述

最近公司做了一個關于SQLSERVER的大項目,所以對SQL SERVER進行了探究。master數據庫,是SQL Server中最重要的系統數據庫。master數據庫包含有關 SQL Server 系統的所有信息,包括有關初始化的信息、配置設置、與實例相關的元數據、有關所有其他數據庫的信息,例如數據庫文件的位置等。這就是為什么主數據庫的存在和正常功能對于任何 SQL Server 實例都是至關重要的。在本文中,我們將說明有關這個重要數據庫的五個事實。

解決方案

通過以下幾個事實,我們將闡明master一些重要特性和功能。

1 、 登錄帳戶和其他實例范圍的元數據存儲在 SQL Server master庫中

你有沒有想過登錄名存儲在哪里?例如,您知道“sa”登錄名及其密碼存儲在哪里嗎?好吧,登錄信息存儲在主數據庫中。雖然在 SQL 登錄的情況下,它們的密碼哈希也存儲在主數據庫中,但對于 Windows 登錄,SQL Server 依賴于 Windows 進行身份驗證。因此,可以在 master 數據庫中找到“sa”帳戶及其散列密碼。我們可以通過運行下面的 T-SQL 代碼來獲取這些信息:

SELECT name AS LoginName, password_hash 
FROM sys.sql_logins
WHERE name='sa'

我們可以從 SQL 查詢中看到登錄名和密碼哈希:

不僅登錄帳戶,而且所有系統級信息都存儲在主數據庫中。鏈接服務器和端點是另外兩個這樣的例子。可能會出現一個問題:我們在哪里可以看到存儲所有這些信息的這些表?當我們在SQL Server Management Studio (SSMS)中展開master 數據庫的“表”時,我們看不到相關的表。主“表”下沒有表 (如果我們沒有手動創建),“系統表”下只有四個表,如下所示:

這是因為包含系統級信息的表是隱藏的,并且在SSMS中不可見。

2、master庫并不存儲系統對象

有一個常見的誤解,即系統對象是存儲在主數據庫中的。雖然在 SQL Server 的舊版本(例如 SQL Server 2000)中,主數據庫包含系統對象,但在新版本中,這些數據不再存儲在master數據庫中。從 SQL Server 2005 開始,這些對象存儲在資源數據庫中,這是一個隱藏的只讀系統數據庫。因此,主數據庫不再包含系統對象,例如 sys.objects 中的數據。

3、如果master數據庫不可用,則無法啟動 SQL Server

我們知道初始化信息,實例中其他數據庫的信息及其文件位置都存儲在master庫中,如果master庫不可用,則實例無法啟動。我們可以通過使master庫不可用來說明這種行為。為此,我們可以停止實例(強烈建議僅在測試實例上執行所有這些測試),將master庫文件(數據和日志或僅其中一個)移動到另一個位置,然后嘗試啟動實例.

要停止實例,我們打開 SQL Server 配置管理器并選擇相應的實例,右鍵單擊它并選擇停止。

在使用上面顯示的屬性選項的實例的啟動參數中,我們可以找到master庫文件的位置。

所以,讓我們將master數據庫的數據文件復制到另一個位置。

然后,我們嘗試啟動實例,方法是右鍵單擊它并選擇 Start。

實例將無法啟動,我們收到以下錯誤。

如果我們打開ERRORLOG文件,我們可以看到錯誤原因描述:

4、可以在 master 數據庫中創建用戶對象,但不建議這樣做

雖然我們可以在 master 數據庫中創建表、存儲過程等用戶對象,但不建議這樣做。但是在某些情況下,有些人出于某些目的不遵循最佳實踐并在主數據庫中創建用戶對象。這通常會發生在T-SQL 代碼中沒有使用“USE <database>” 語句,則將會在主數據庫中創建對象。因為當我們在 SSMS 中打開一個新的查詢窗口時,默認數據庫是主數據庫(除非它被更改)。

要在 master 數據庫中查找用戶創建的對象,我們可以運行以下 Transact-SQL 代碼。

SELECT *FROM master.sys.objects 
WHERE is_ms_shipped=0

其中 is_ms_shipped為 0 或 1(位數據類型字段),并顯示對象是由內部 SQL 組件 (1) 還是不是 (0) 創建。在如下的例子中,我們可以看到我們有兩個用戶創建的對象。

5、master數據庫只允許創建完整備份

建議對master數據庫進行全新備份。特別是在我們創建、刪除或修改新數據庫、登錄帳戶和更改配置值時,執行主數據庫的備份非常重要。另外,如果你已經在master數據庫中創建了用戶對象(上面不推薦這樣做),根據這些用戶創建對象的變化,備份master數據庫是合理的。無法對主數據庫進行事務日志或差異備份。

如果我們嘗試在 master 數據庫上執行備份操作,我們可以看到唯一可用的選項是完整備份。

小結

總而言之,我們探討了有關 SQL Server master數據庫的五個有趣事實。具體來說,我們了解到主數據庫包含 SQL 身份驗證用戶的登錄帳戶和密碼哈希。此外,我們了解到master數據庫不包含系統對象(自 SQL Server 2005 起,它們存儲在資源數據庫中)。如果master數據庫不可用, SQL Server 實實例則無法啟動。此外展示了我們是否可以在主數據庫中創建用戶對象。最后,我們了解到主數據庫的唯一可能備份是完整備份。

責任編輯:姜華 來源: 博客園
相關推薦

2022-09-29 19:37:09

SQL Server數據庫

2022-10-13 21:07:48

數據庫SQL Server

2022-09-22 19:09:11

SQL Server數據庫

2022-09-22 22:51:32

Master數據庫

2011-05-10 16:34:03

MasterSQL Server

2011-03-23 10:08:09

2010-11-09 16:29:39

SQL Server死

2022-09-05 17:09:55

SQL Server數據庫

2010-07-01 11:20:38

SQL Server

2022-08-26 17:22:12

SQL數據庫

2010-07-21 10:36:18

SQL Server

2010-03-16 10:12:40

SQL Server

2010-07-15 17:28:50

SQL Server

2011-08-15 15:40:57

SQL Server 系統數據庫

2010-07-21 10:41:55

SQL Server

2010-07-07 14:53:04

SQL Server數

2010-11-08 14:02:40

SQL Server系

2010-10-21 16:33:55

sql server系

2010-11-10 15:07:40

sql server系

2010-07-08 11:05:14

SQL Server數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 盗摄精品av一区二区三区 | 一级毛片视频在线 | 伊人免费网 | 欧美日韩国产精品一区 | 免费欧美视频 | 欧美片网站免费 | 金莲网 | 在线免费观看黄色 | 亚洲 欧美 另类 日韩 | 亚洲国产精品一区二区第一页 | 91亚洲国产| 久久久久久国产精品mv | 久久精品视频在线播放 | 亚洲综合色丁香婷婷六月图片 | 欧美xxxx网站 | 久久成人午夜 | 成人av大全| 成人一区二区三区在线观看 | 精品国产青草久久久久福利 | 综合久久久久久久 | 999久久久 | 国产精品久久久久久一区二区三区 | 亚洲国产精品99久久久久久久久 | 欧美中文字幕在线观看 | 国产精品高 | 日日日日日日bbbbb视频 | 日韩视频―中文字幕 | 亚洲精品乱码久久久久v最新版 | 亚洲经典一区 | 国产又爽又黄的视频 | 国产视频第一页 | 天天看天天干 | 国产一区二区三区在线 | 欧美精品一区二区三区四区五区 | 美女福利视频 | 色综合99 | 欧美成人精品 | 亚洲视频免费一区 | 一区二区高清不卡 | 天堂av中文 | 国产精品久久久久久久岛一牛影视 |