自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

系統(tǒng)庫(kù)-SQL Server Master探究

數(shù)據(jù)庫(kù) SQL Server
Master數(shù)據(jù)庫(kù)包含有關(guān) SQL Server 系統(tǒng)的所有信息,包括有關(guān)初始化的信息、配置設(shè)置、與實(shí)例相關(guān)的元數(shù)據(jù)、有關(guān)所有其他數(shù)據(jù)庫(kù)的信息,例如數(shù)據(jù)庫(kù)文件的位置等。

概述

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

解決方案

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

1 、 登錄帳戶和其他實(shí)例范圍的元數(shù)據(jù)存儲(chǔ)在 SQL Server master庫(kù)中

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

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

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

不僅登錄帳戶,而且所有系統(tǒng)級(jí)信息都存儲(chǔ)在主數(shù)據(jù)庫(kù)中。鏈接服務(wù)器和端點(diǎn)是另外兩個(gè)這樣的例子??赡軙?huì)出現(xiàn)一個(gè)問題:我們?cè)谀睦锟梢钥吹酱鎯?chǔ)所有這些信息的這些表?當(dāng)我們?cè)赟QL Server Management Studio (SSMS)中展開master 數(shù)據(jù)庫(kù)的“表”時(shí),我們看不到相關(guān)的表。主“表”下沒有表 (如果我們沒有手動(dòng)創(chuàng)建),“系統(tǒng)表”下只有四個(gè)表,如下所示:

這是因?yàn)榘到y(tǒng)級(jí)信息的表是隱藏的,并且在SSMS中不可見。

2、master庫(kù)并不存儲(chǔ)系統(tǒng)對(duì)象

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

3、如果master數(shù)據(jù)庫(kù)不可用,則無法啟動(dòng) SQL Server

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

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

在使用上面顯示的屬性選項(xiàng)的實(shí)例的啟動(dòng)參數(shù)中,我們可以找到master庫(kù)文件的位置。

所以,讓我們將master數(shù)據(jù)庫(kù)的數(shù)據(jù)文件復(fù)制到另一個(gè)位置。

然后,我們嘗試啟動(dòng)實(shí)例,方法是右鍵單擊它并選擇 Start。

實(shí)例將無法啟動(dòng),我們收到以下錯(cuò)誤。

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

4、可以在 master 數(shù)據(jù)庫(kù)中創(chuàng)建用戶對(duì)象,但不建議這樣做

雖然我們可以在 master 數(shù)據(jù)庫(kù)中創(chuàng)建表、存儲(chǔ)過程等用戶對(duì)象,但不建議這樣做。但是在某些情況下,有些人出于某些目的不遵循最佳實(shí)踐并在主數(shù)據(jù)庫(kù)中創(chuàng)建用戶對(duì)象。這通常會(huì)發(fā)生在T-SQL 代碼中沒有使用“USE <database>” 語(yǔ)句,則將會(huì)在主數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)象。因?yàn)楫?dāng)我們?cè)?SSMS 中打開一個(gè)新的查詢窗口時(shí),默認(rèn)數(shù)據(jù)庫(kù)是主數(shù)據(jù)庫(kù)(除非它被更改)。

要在 master 數(shù)據(jù)庫(kù)中查找用戶創(chuàng)建的對(duì)象,我們可以運(yùn)行以下 Transact-SQL 代碼。

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

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

5、master數(shù)據(jù)庫(kù)只允許創(chuàng)建完整備份

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

如果我們嘗試在 master 數(shù)據(jù)庫(kù)上執(zhí)行備份操作,我們可以看到唯一可用的選項(xiàng)是完整備份。

小結(jié)

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

責(zé)任編輯:姜華 來源: 博客園
相關(guān)推薦

2022-09-29 19:37:09

SQL Server數(shù)據(jù)庫(kù)

2022-10-13 21:07:48

數(shù)據(jù)庫(kù)SQL Server

2022-09-22 19:09:11

SQL Server數(shù)據(jù)庫(kù)

2022-09-22 22:51:32

Master數(shù)據(jù)庫(kù)

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數(shù)據(jù)庫(kù)

2010-07-01 11:20:38

SQL Server

2022-08-26 17:22:12

SQL數(shù)據(jù)庫(kù)

2010-07-21 10:36:18

SQL Server

2010-07-15 17:28:50

SQL Server

2010-03-16 10:12:40

SQL Server

2010-07-21 10:41:55

SQL Server

2011-08-15 15:40:57

SQL Server 系統(tǒng)數(shù)據(jù)庫(kù)

2010-07-07 14:53:04

SQL Server數(shù)

2010-11-08 14:02:40

SQL Server系

2010-10-21 16:33:55

sql server系

2010-07-08 11:05:14

SQL Server數(shù)

2010-11-10 15:07:40

sql server系
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)