SQL server 2008架構

1.簡介
架構是一個對象有容器,它包含表、視圖、存儲過程等數據對象的容器。從包含關係上來講,架構位於數據庫內部,而數據庫位於服務器內部。

在默認情況下系統的默認架構是dbo。如果是訪問默認架構中的對象則可以忽略架構名稱,否則在訪問表、視圖等對象時需要指定架構名稱。

2.創建架構
1.使用SQL Server Management Studio的對象資源管理器創建架構
操作步驟:
(1)啓動SQL Server Management Studio管理平臺,在“對象資源管理器”中展開stu_mag數據庫結點。
(2)在“對象資源管理器”中展開stu_mag數據庫的“安全性”節點下的“架構”節點。
(3)右擊“架構”節點,在彈出的快捷菜單中選擇“新建架構”選項,系統將彈出“架構-新建”對話框。
(4)在“架構名稱”文本框中輸入架構名稱。
(5)在“架構所有者”文本框中輸入架構的所有者用戶,或者單擊“搜索”按鈕,系統彈出“搜索角色和用戶”對話框。
(6)單擊“瀏覽”按鈕系統將彈出“查找對象”對話框,其中列出了數據庫中所有的角色和用戶。
(7)在其中選中架構的擁有者對象並單擊“確定”按鈕,最後在“架構-新建”對話框中單擊“確定”按鈕完成架構的創建工作。

3.使用Transact-SQL語句創建架構
語法格式如下:
CREATE SCHEMA schema_name_clause[[…n]]
< schema_name_clause >::=
{
schema_name
|AUTHORIZATION owner_name
| schema_name AUTHORIZATION owner_name
}
::=
{
table_definition|view_definiion|grant_statement
|revoke_statement|deny_statement
}
相關參數說明如下:
schema_name:數據庫內架構的名稱。
AUTHORIZATION owner_name:指定將擁有架構的數據庫級主體的名稱。此主體還可以擁有其他架構,並且可以不使用當前架構作爲其默認架構。
table_definition:指定在架構內創建表的CREATE TABLE語句。執行此語句的主體必須對當前數據庫具有CREATE TABLE權限。
view_definiion:指定在架構內創建視圖的CREATE VIEW語句。執行此語句的主體必須對當前數據庫具有CREATE VIEW權限。
grant_statement:指定可對除新架構外的任何安全對象授予權限的GRANT語句。
revoke_statement:指定可對除新架構外的任何安全對象撤銷權限的REVOKE語句。
deny_statement:指定可對除新架構外的任何安全對象拒絕授予權限的DENY語句。
eg: 在stu_mag數據庫中創建一個架構trh,該架構的擁有者爲用戶TEST_1,對應的SQL命令如下:
Use stu_mag
GO
Create Schema trh Authorization TEST_1

  1. 在SQL Server 2008中將所有權與架構分離具有重要的意義:
    1)架構的所有權和架構範圍內的安全對象可以轉移。
    2)對象可以在架構之間移動
    3)單個架構可以包含由多個數據庫用戶擁有的對象。架構和用戶之間是多對多的關係,一個用戶可以擁有多個架構,一個架構也可以分給多個用戶。
    4)多個數據庫用戶共享單個默認架構。
    5)與早期版本相比,對架構及架構中包含的安全對象權限的管理更加精細。
    6)架構可以由任何數據庫主體擁有,其中包括角色和應用程序角色。
    7)可以刪除數據庫用戶而不刪除相應架構中的對象。刪除用戶並不會造成對架構和架構中對象的影響。

5.修改架構
1.使用SQL Server Management Studio的對象資源管理器修改架構
(1)啓動SQL Server Management Studio管理平臺,在“對象資源管理器”中展開stu_mag數據庫結點。繼續展開stu_mag數據庫的“安全性”節點下的“架構”節點。
(2)右擊“架構”節點下需要修改的架構my_dba,彈出的快捷菜單中選擇“屬性”命令,系統將彈出“架構屬性-my_dba”對話框。
(3) 在“架構屬性-my_dba”對話框中進行瀏覽與修改,餘下的過程與創建架構的過程相似

6.使用Transact-SQL語句修改架構
語法格式爲:
Alter Schema schema_name Transfer object_name
相關參數說明如下:
schema_name:用於指定當前數據庫中的架構名稱,安全對象將移入其中。其數據類型不能爲SYS或INFORMATION_SCHEMA。
securable_name:爲要移入架構中的原架構中所包含的安全對象的名稱。
eg: 數據庫stu_mag中創建了表teacher,該表所使用的架構是dbo,現在需要將該表的架構修改爲h_1,則對應的SQL腳本代碼如下所示:
Alter Schema h_1 Transfer dbo.teacher
7.刪除架構
1.使用SQL Server Management Studio的對象資源管理器修改架構
2.使用Transact-SQL語句刪除架構
語法格式如下:
Drop Schema schema_name

注:
schema_name爲架構在數據庫中所使用的名稱,要刪除的架構不能包含任何對象。如果架構包含對象,則Drop語句失敗。

發佈了39 篇原創文章 · 獲贊 26 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章