SQL SERVER中架構的理解

2021-08-30 17:12:07 字數 1594 閱讀 1011

在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)成員關係擁有同乙個架構。在2005中,每個資料庫中的固定資料庫角色都有乙個屬於自己的架構,如果我們建立乙個表,給它指定的架構名稱為db_ddladmin,那麼任何乙個屬於db_ddladmin中的使用者都是可以去查詢、修改和刪除屬於這個架構中的表,但是其它不屬於這個組的使用者是不行的,有一點必須注意,db_dbdatareader組的成員可以檢視所有資料庫中的表,db_dbdatawriter組成員可以修改所有資料庫中的表,db_owner組成員可以對資料庫所有表進行所有操作,這幾個組的成員可以通過角色獲取到在資料庫中的特殊許可權。

2.刪除資料庫使用者變得極為簡單。在 sql server 2000 中,使用者(user)和架構是隱含關聯的,即每個使用者擁有與其同名的架構。因此要刪除乙個使用者,必須先刪除或修改這個使用者所擁有的所有資料庫物件,就比如乙個員工要離職要刪除他的賬戶的時候,還得將他所建立的表和檢視等都刪除,影響過大。將架構和物件者分離後就不在存在這樣的問題,刪除使用者的時候,對資料庫物件是沒有任何影響的。

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

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

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

大多數使用者在建立物件的時候習慣直接輸入物件名而將物件的架構名稱省略,在2005中,會給使用者建立的這樣的表加上乙個預設的架構,使用者如果沒有對自己的預設架構做設定,那預設架構就是dbo,也就是說,如果乙個db_ddladmin的成員在資料庫中建立乙個沒有加上架構名稱的表,這個表在資料庫中的完整名稱應該是dbo.表名,建立者在資料庫中如果不是屬於其它特殊組的成員,是不能對自己建立的表進行任何修改和查詢的,那就相當於把自己賺的錢存進了別人的銀行卡,自己卻取不出來。

SQL SERVER中架構的理解

在sqlserver 2005中,可能大家在工作或學習的時候會經常發現這樣一些問題,你使用乙個賬戶在資料庫中建立了一張表,卻發現你自己建立的表卻沒有修改和查詢的許可權,這是一件很鬱悶的事情,在sqlserver2000中卻不存在這樣的問題,那為什麼在2005中會出現這樣的事情,這樣的設定可以帶來哪些...

SQL Server 中函式的理解總結

t sql語言為我們提供了更加靈活的方式運算元據,那就是函式,函式總的分為三大類 標量函式 傳入乙個引數,再傳出乙個引數 聚合函式 傳入多個引數,傳出乙個引數 錶值函式 傳入乙個結果集物件,讓我們能夠通過對錶的操作對其進行處理 錶值函式在此進行細分的話可以分為兩類 內嵌錶值函式和多語句錶值函式。內嵌...

關於中臺架構的理解

誰能幹就讓誰幹 中臺架構的本質是平台思維。是將企業的核心能力隨著業務發展沉澱到平台,形成以服務為中心,由業務中颱和資料中臺構建起資料閉環運轉的運營體系,供業務更高效的進行業務探索和創新,實現以數位化資產的形態構建企業核心差異化競爭力。1 是否是大型複雜生態系統?中臺戰略解決複雜生態系統的治理問題。如...