SQL Server 2008的使用者架構分離
在 SQL Server 2005 中,架構行為已更改。架構不再等效於資料庫使用者;現在,每個架構都是獨立於建立它的資料庫使用者存在的不同名稱空間。也就是說,架構只是物件的容器。任何使用者都可以擁有架構,並且架構所有權可以轉移。
新行為
所有權與架構的分離具有重要的意義:
架構的所有權和架構範圍內的安全物件可以轉移。有關詳細資訊,請參閱 ALTER AUTHORIZATION (Transact-SQL)。
物件可以在架構之間移動。有關詳細資訊,請參閱 ALTER SCHEMA (Transact-SQL)。
單個架構可以包含由多個資料庫使用者擁有的物件。
多個資料庫使用者可以共享單個預設架構。
與早期版本相比,對架構及架構中包含的安全物件的許可權的管理更加精細。有關詳細資訊,請參閱 GRANT 架構許可權 (Transact-SQL) 和 GRANT 物件許可權 (Transact-SQL)。
架構可以由任何資料庫主體擁有。這包括角色和應用程式角色。
可以刪除資料庫使用者而不刪除相應架構中的物件。
如果為 SQL Server 早期版本編寫的程式碼假定架構等效於資料庫使用者,這些程式碼可能會返回錯誤的結果。
為 SQL Server 早期版本設計的目錄檢視可能會返回錯誤的結果。這包括 sysobjects。
新目錄檢視
從 SQL Server 2005 開始,架構是在後設資料中反映的顯式實體;因此,架構只能有一個所有者,但一個使用者可以不擁有架構,也可以擁有多個架構。這種複雜關係並未在 SQL Server 2000 系統表中反映,因此 SQL Server 2005 引入了新的目錄檢視,以準確反映新的後設資料。
下表顯示了 SQL Server 2000 系統表與其 SQL Server 2005 等效項和更高版本的目錄檢視之間的對映。
SQL Server 2000 系統表 SQL Server 2005 及更高版本的目錄檢視
sysusers
sys.database_principals
sys.schemas
syslogins
sys.server_principals
SQL Server 2005 引入了超過 250 個新目錄檢視。極力建議使用新的目錄檢視訪問後設資料。有關詳細資訊,請參閱目錄檢視 (Transact-SQL)。
新的 DDL 語句可以將舊的目錄檢視(如 sysobjects)不能準確反映的複雜關係引入系統後設資料中。在此示例中,使用者 ID 與由 sysobjects 返回的架構名稱之間不同步,無法反映使用者與 SQL Server 2005 中引入的架構之間的區別。
複製程式碼
use tempdb
go
create login u1 with password = 'Mdfjd$sakj943857l7sdfh##30'
create user u1 with default_schema = u1
go
grant create table to u1
go
create schema sch1
go
create schema u1 authorization u1
go
execute as user = 'u1'
go
create table t1(c1 int)
go
revert
go
select user_name(uid) , * from sysobjects where name = 't1'
go注意:
您必須在任何曾經使用過下列 DDL 語句的資料庫中使用新的目錄檢視:CREATE/ALTER/DROP SCHEMA;CREATE/ALTER/DROP USER;CREATE/ALTER/DROP ROLE;CREATE/ALTER/DROP APPROLE;ALTER AUTHORIZATION。
預設架構
為了解析不完全限定的安全物件名稱,SQL Server 2000 使用名稱解析來檢查執行呼叫的資料庫使用者所擁有的架構和 dbo 所擁有的架構。
從 SQL Server 2005 開始,每個使用者都擁有一個預設架構。可以使用 CREATE USER 或 ALTER USER 的 DEFAULT_SCHEMA 選項設定和更改預設架構。如果未定義 DEFAULT_SCHEMA,則資料庫使用者將使用 dbo 作為預設架構。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503154/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 架構中的分離架構
- 關於SQL Server2005/2008中架構的理解SQLServer架構
- SQL Server AlwaysOn讀寫分離配置SQLServer
- 前後分離架構的探索之路架構
- SQL Server 2008的加密層次結構SQLServer加密
- ClickHouse 存算分離架構探索架構
- SQL Server 2008使用者介面簡介SQLServer
- 解構成為架構潮流的“存算分離”架構
- 附加和分離SQL Server資料庫方法SQLServer資料庫
- SQL Server 資料庫檔案的分離和附加SQLServer資料庫
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- SQL Server 2008儲存結構之PFS結構SQLServer
- SQL Server 2008儲存結構之IAM結構SQLServer
- Mysql之讀寫分離架構-AtlasMySql架構
- 什麼是存算分離架構?架構
- 理解SQL Server 2008索引的儲存結構YDSQLServer索引
- 網際網路動靜分離架構架構
- 前後端分離架構中的介面設計後端架構
- 前端與後端分離的架構例項(二)前端後端架構
- 前端與後端分離的架構例項(三)前端後端架構
- 前端與後端分離的架構例項(一)前端後端架構
- SQL Server 2008 sqlcmd 的使用SQLServer
- SQL Server2008無法修改表結構?SQLServer
- SQL Server 2008儲存結構之GAM、SGAMSQLServerGAM
- SQL Server 2008 儲存結構之DCM、BCMSQLServer
- 《從零構建前後分離web專案》探究 - 深入聊聊前後分離架構Web架構
- SQL Server關於AlwaysOn的理解-讀寫分離的誤區(一)SQLServer
- SQL Server底層架構技術對比SQLServer架構
- 一次前後端分離架構的實踐後端架構
- 蘇寧易購:前後端分離架構的落地思考後端架構
- 一個前端與後端分離的架構例項前端後端架構
- 淺談架構之路:前後端分離模式架構後端模式
- SQL SERVER 2008的top增強SQLServer
- SQL Server 2008稀疏列的使用SQLServer
- SQL SERVER 2008安全配置SQLServer
- SQL Server 2008 過期SQLServer
- 安裝sql server 2008SQLServer
- SQL Server 2008 安全更改SQLServer