iT邦幫忙

DAY 24
5

MS SQL Server新特性探險:探險代碼 Denali系列 第 24

[Denali 新特性探險24]Contained Databases(2)

這篇介紹如何將Contained Database轉移到另一台SQL Server Instance。
在上一篇我大概介紹了Contained Database特性及如何啟用,
這篇我將實作Contained Database轉移到另一台SQL Server Instance過程。

我先在資料庫建立一些物件

--建立資料表
create table tbl_A
(
c1 int ,
c2 varchar(10)
)
go
insert into tbl_A select 1,'rico'
go
--建立預存程序
create proc usp_getdata
as
select * from tbl_A
go
--建立檢視表
create view uv_getsum
as
select sum(1) over (partition by c2 order by c1) as '總量' 
from tbl_A
go
--建立純量值函式
create function ufun_getcount()
returns int
as
begin
declare @total int;
select @total=count(1) from tbl_A
return @total; 
end

轉移Contained Database到另一台SQL Server Instance

  1. 備份來源端(Server A) ContaidedDB

    backup database MyContainedDB to disk= 'D:\sqlbackup\MyContainedDB.bak'


備份成功。

  1. 還原MyContaidedDB到 目的端(ServerB)
    注意:如果目的端SQL Server Instance未啟用自主資料庫驗證,
    當你執行還原資料庫操作時,你將得到還原失敗的錯誤訊息(如下圖)

    還原失敗。

啟用自主資料庫驗證

sp_configure 'show advanced options',1 
reconfigure
go 
sp_configure 'contained database authentication',1 
reconfigure 
go 
select * from sys.configurations
where name='contained database authentication'

再次執行還原

restore database MyContainedDB from disk='D:\sqlbk\MyContainedDB.bak'

成功將MyContainedDB還原到另一台SQL Server Instance。

Contained Databae驗證測試


你可以看到 雖然MycontainedUser並未存在登入清單中,
但卻不像以往資料庫轉移後會出現資料庫主體的錯誤訊息,
而且也可以正常存取MyContainedDB。

MS SQL Server新特性探險:探險代碼 Denali 全系列文章


上一篇
[Denali 新特性探險23]Contained Databases(1)
下一篇
[Denali 新特性探險25]Contained Databases(3)
系列文
MS SQL Server新特性探險:探險代碼 Denali30

尚未有邦友留言

立即登入留言