sqlserver中的架構是什麼意思

時間 2021-08-30 10:42:29

1樓:匿名使用者

在sqlserver 2005中,可能大家在工作或學習的時候會經常發現這樣一些問題,你使用一個賬戶在資料庫中建立了一張表,卻發現你自己建立的表卻沒有修改和查詢的許可權,這是一件很鬱悶的事情,在sqlserver2000中卻不存在這樣的問題,那為什麼在2005中會出現這樣的事情,這樣的設定可以帶來哪些好處?其實導致這一問題的原因主要在於2005中多了一個新的概念—架構。

首先我們來看一下msdn中對架構的定義:架構(schema)是形成單個名稱空間的資料庫實體的集合。名稱空間是一個集合,其中每個元素的名稱都是唯一的。

在這裡,我們可以將架構看成一個存放資料庫中物件的一個容器。

架構實際上在sqlserver2000中就已經存在,當我們使用查詢分析器去查詢一個表的時候,一個完整的表的名稱應該包括伺服器名.資料庫名.使用者名稱.

物件名,而在sqlserver2005中一個表的完全限定名稱應該為伺服器名.資料庫名.架構名.

物件名在2000中,假如有一個賬戶tt在test資料庫中建立了一張表table1的時候,在伺服器上對查詢的語句應為select * from test.tt.table1,也就是說,在sqlserver 2000中一張表所屬的架構預設就是表的建立者的登入名稱,使用者可以和修改他所建立的所有資料庫物件。

但在2005中已經將使用者和其建立物件所屬架構的關聯取消了,而加入了一個全新的架構體系,這樣做的優點主要在於下面幾個方面:

1. 多個使用者可以通過角色(role)或組(windows groups)成員關係擁有同一個架構。

2. 刪除資料庫使用者變得極為簡單。

3. 共享預設架構使得開發人員可以為特定的應用程式建立特定的架構來存放物件,這比僅使用管理員架構(dbo schema)要好。

4. 在架構和架構所包含的物件上設定許可權(permissions)比以前的版本擁有更高的可管理性。

5. 區分不同業務處理需要的物件,例如,我們可以把公共的表設定成pub的架構,把銷售相關的設定為sales,這樣管理和訪問起來更容易.

2樓:匿名使用者

通俗點說就是一個組,裡面可以存放表、檢視、儲存過程等

主要是用於許可權控制安全控制的

sql server和my sql的關係是什麼

兩個不同公司和機制下產生的資料庫軟體 sql是微軟的 執行在nt上 是商業軟體 無免費版mysql是公開原始碼的產物,雖然現在有商業的 但是還是提供免費版的mysql 是一個開放源 的資料庫管理系統 dbms 它採用客戶端 伺服器結構,是一個多執行緒 多使用者的資料庫伺服器。mysql 是為高速應用...

在SQL Server中設定列的約束只能是八位字元,前兩位是0,3 4為數字,第五位是下劃線,6 8位是字母

substring 12345678 1,2 00 判斷前兩位是0 ascii substring 12a45678 3,1 between ascii 0 and ascii 9 判斷第三位是數字 ascii substring 12a45678 4,1 between ascii 0 and a...

sqlserver中的varchar和nvarchar有什麼區別

1 char。char儲存定長資料很方便,char欄位上的索引效率級高,比如定義char 10 那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間,不足的自動用空格填充,所以在讀取的時候可能要多次用到trim 2 varchar。儲存變長資料,但儲存效率沒有char高。如果一個欄...