在SQL Server中,數(shù)據(jù)庫架構(gòu)簡化安全管理。模式有助于確定誰可以訪問數(shù)據(jù)庫對象。
數(shù)據(jù)庫模式也可以作為一個命名空間。這可以防止來自不同模式的對象名稱沖突。
什么是數(shù)據(jù)庫模式?
數(shù)據(jù)庫模式是一種邏輯分組對象,如表,視圖,存儲過程等。想想一個模式作為對象的容器。
可以指定一個用戶登錄權(quán)限的單一模式,以便用戶只能訪問他們被授權(quán)訪問的對象。
模式可以創(chuàng)建和改變在數(shù)據(jù)庫中,并且用戶可以被允許訪問的模式。 一個模式可以被任何用戶所擁有,并且架構(gòu)所有權(quán)轉(zhuǎn)讓。
創(chuàng)建數(shù)據(jù)庫模式
要創(chuàng)建在SQL Server 2014數(shù)據(jù)庫模式:
-
從對象資源管理器,瀏覽到安全性和打開模式節(jié)點。
-
右鍵單擊架構(gòu)并選擇新建模式....就像這樣:

-
完成常規(guī)選項卡的詳細信息的新模式。在這個例子中,模式名稱就是維護和架構(gòu)所有者的db_owner(也可以使用搜索功能找到一個所有者)。

-
點擊權(quán)限將用戶添加到架構(gòu)
-
要添加用戶,使用搜索...按鈕,然后瀏覽...:

-
選擇用戶并單擊OK:

-
當(dāng)用戶被添加,設(shè)置他們的權(quán)限。在我的例子,我授予Zoidberg用戶更改,刪除,插入,選擇和更新權(quán)限:

-
通過擴展屬性選項卡中添加任何擴展屬性(我保留這個空白)
-
點擊OK.
添加一個表的新模式
現(xiàn)在我們有一個新的模式,我們可以添加對象,如表,視圖和存儲過程。例如,我們可以轉(zhuǎn)移,我們在前面的教訓(xùn),以新的模式中創(chuàng)建一個或多個表。
當(dāng)我們創(chuàng)建了一個表(稱為“Tasks”),它在默認數(shù)據(jù)庫模式(“dbo”)建立。我們知道這是因為它出現(xiàn)在我們的對象瀏覽器為dbo.Tasks。
將“Tasks”表轉(zhuǎn)移到“Maintenance”模式,做到以下幾點:
-
在對象資源管理器中,請確保正在使用的數(shù)據(jù)庫TaskTracker,然后用鼠標(biāo)右鍵單擊任務(wù)表并選擇設(shè)計:

-
從設(shè)計視圖,屬性窗口應(yīng)該出現(xiàn)在右側(cè)。如果沒有,按F4鍵顯示屬性窗口。
-
從屬性窗口,更改架構(gòu)到所需的模式:

-
可能會說稱更改此對象的模式將導(dǎo)致目前所有的權(quán)限警告被丟棄。你確定要繼續(xù)?點擊OK繼續(xù)。
-
通過右鍵關(guān)閉設(shè)計視圖點擊選項卡上的x。
-
當(dāng)提示保存,單擊"Ok"
你的表已經(jīng)被轉(zhuǎn)移到了“Maintenance”模式。
確認更改
確認更改:
-
刷新通過右鍵單擊對象資源管理器上的表,然后單擊刷新。
-
現(xiàn)在,您將看到對象資源管理器顯示新的模式表(即Maintenance.Tasks):
