SQL Server 2012中的Contained Database尝试
簡(jiǎn)介
??? SQL Server 2012新增的Contained Database是為了解決數(shù)據(jù)庫(kù)在不同SQL Server實(shí)例之間遷移的問(wèn)題。在以往的情況下,數(shù)據(jù)庫(kù)本身并不包含一些實(shí)例級(jí)別的配置參數(shù)(比如:數(shù)據(jù)庫(kù)的一些metadata和登錄名之類的)將數(shù)據(jù)庫(kù)從一臺(tái)服務(wù)器遷移到另一臺(tái)服務(wù)器使用備份和恢復(fù)(或分離和附加)使得需要額外工作來(lái)設(shè)置這些數(shù)據(jù)庫(kù)實(shí)例級(jí)別的metadata,而使用Contained Database,可以將這類信息包含在數(shù)據(jù)庫(kù)中,從而大大減少這類工作的工作量。
??? 下面我們從配置Contained Database開(kāi)始。
?
配置Contained Database
??? 在開(kāi)始使用Contained Database之前,首先要通過(guò)Sp_config或SSMS來(lái)配置實(shí)例級(jí)別的參數(shù)開(kāi)啟Contained Database.如代碼1和圖1所示。
--開(kāi)啟允許配置Contained database sp_configure 'show advanced options',1 reconfigure go sp_configure 'contained database authentication',1 reconfigure go?? 代碼1.通過(guò)sp_configure開(kāi)啟Contained Database
?
??? ???
??? 圖1.通過(guò)SSMS開(kāi)啟Contained Database
?
??? 在實(shí)例級(jí)別開(kāi)啟允許使用Contained Database后,通過(guò)對(duì)希望變?yōu)镃ontained Database的數(shù)據(jù)庫(kù)在SSMS中進(jìn)行設(shè)置。如圖2所示。
???
??? 圖2.Contained Database在數(shù)據(jù)庫(kù)級(jí)別的設(shè)置
?
??? 下面我們?cè)跀?shù)據(jù)庫(kù)級(jí)別設(shè)置用戶,如圖3所示.
???
??? 圖3.在數(shù)據(jù)庫(kù)級(jí)別添加用戶
?
?? 同時(shí)我們?yōu)橛脩粼诔蓡T身份中指定到db_owner組。現(xiàn)在,我們就能通過(guò)SSMS連接到這個(gè)Contained Database了。如圖4所示。
???
??? 圖4.使用剛剛在數(shù)據(jù)庫(kù)級(jí)別創(chuàng)建的用戶進(jìn)行登錄
???
??? 用我們剛剛創(chuàng)建的用戶登錄,在選項(xiàng)中指定連接數(shù)據(jù)庫(kù)為剛才設(shè)置為Contained Database的數(shù)據(jù)庫(kù),如圖5所示。
???
??? 圖5.指定設(shè)置為Contained Database的數(shù)據(jù)庫(kù)(Test數(shù)據(jù)庫(kù))
?
???? 連接成功后,我們可以看到,作為數(shù)據(jù)庫(kù)級(jí)別設(shè)置的用戶,是無(wú)法訪問(wèn)實(shí)例中的其它數(shù)據(jù)庫(kù)的。而在圖6中我們可以看到,實(shí)例不不包含剛剛創(chuàng)建的登錄名的,而是包含在數(shù)據(jù)庫(kù)級(jí)別。
????
???? 圖6.兩種連接方式對(duì)比
?
備份和恢復(fù)Contained Database
???? 當(dāng)然,Contained Database最大的作用是在備份和恢復(fù)時(shí)的便利性。下面,我們將剛才的Contained Database進(jìn)行備份,然后在另一個(gè)實(shí)例中進(jìn)行恢復(fù)。如圖7和圖8所示。
???
??? 圖7.備份數(shù)據(jù)庫(kù)
?
???
??? 圖8.在另一個(gè)實(shí)例中恢復(fù)數(shù)據(jù)庫(kù)
?
??? 這里要注意的是,在另一個(gè)實(shí)例必須也是sql server 2012并且在實(shí)例級(jí)別開(kāi)啟了”啟用包含數(shù)據(jù)庫(kù)”選項(xiàng)。我們嘗試登錄另一臺(tái)服務(wù)器后,可以看到Contained Database,如圖9所示。
??
?
總結(jié)
??? 本文簡(jiǎn)單講述了Contained Database,使用Contained Database大大減少數(shù)據(jù)庫(kù)在實(shí)例之間的遷移工作。但Contained Database真正的強(qiáng)大之處是和AlwaysOn結(jié)合使用,我將在后續(xù)文章中講到。
轉(zhuǎn)載于:https://www.cnblogs.com/CareySon/archive/2012/03/13/2393693.html
總結(jié)
以上是生活随笔為你收集整理的SQL Server 2012中的Contained Database尝试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UVA 10405 - Longest
- 下一篇: MYSQL中 ENUM 类型