iT邦幫忙

DAY 23
5

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

[Denali 新特性探險23]Contained Databases(1)

這篇介紹Contained Databases。
概述
Contained Database主要解決以往資料庫轉移到另外一台Server問題。
以前當我們使用Backup and Restore
(or detach and attach) Database到另外一台Server,
可能還需要額外的處理後整個轉移才算完成,
而這些操作好比資料庫相關設定、
角色管理(或其他安全性物件,最常見就是處理登入使用者問題)對應…等,
轉移過程中可能會因為忘了某個設定或角色權限對應而導致無法正常使用(相當不方便又麻煩),
現在,當你選用 Denali並啟用 Contained Database後,
你再也不用擔心上述問題,
因為Contained Database包含資料庫所有設定和相關必須metadata,
且切割資料庫和SQL Server Instance(From Database Engine)、
TempDB之間的關聯性,方便使用者轉移到另一台Server,
下面我將簡單操作如何啟用 Contained Database。

1. 啟用 Contained Database
Using TSQL

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'


1:啟用。
0:停用。

Using SSMS

2. 建立資料庫內含項目類型=部分
Using TSQL

create database MyContainedDB
containment=partial
on
(
name='MyContainedDB',filename='D:\sqldata\MyContainedDB.mdf',size=100mb,maxsize=500mb,filegrowth=10mb
)
log on
(
name='MyContainedDB_log',filename='D:\sqldata\MyContainedDB_log.ldf',size=100mb,maxsize=500mb,filegrowth=10mb
)

Using SSMS

3. 建立SQL user with password

使用者類型選擇SQL user with password。


角色選擇 db_owner 。

4.連接DataBase Engine 測試

選擇SQL Server驗證並輸入帳號和密碼。


資料庫選擇MyContainedDB。


連接Database Engine成功。
可以看到使用MycontainedUser連接Database Engine後,
只能存取MycontainedDB,其餘資料庫不僅無法存取,
甚至更本無法檢視其他資料庫。


MyContainedUser在登入中不存在。

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


上一篇
[Denali 新特性探險22]SQL Server Management Studio Improvement(2)
下一篇
[Denali 新特性探險24]Contained Databases(2)
系列文
MS SQL Server新特性探險:探險代碼 Denali30

尚未有邦友留言

立即登入留言