首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 架構、用戶、角色與登入觀念解析(一)

     編輯:關於SqlServer

核心觀念建立

每個概念的產生都是為了解決特定問題。我們從零開始:

資料庫物件

資料表、檢視、預存程序、觸發器等都是資料庫物件。類比網站的網頁、圖片、腳本檔案。

架構 = 物件容器

正如網站用資料夾分類管理檔案,架構是資料庫物件的命名空間容器。一個物件只能屬於一個架構,架構不可巢狀。完整引用格式為 架構名.物件名。

預設架構

若只寫 SELECT * FROM tablename,SQL Server 會自動加上目前登入使用者的 DEFAULT_SCHEMA。若物件不在該架構下會報「無效的物件名稱」。

加上架構前綴即可解決:

變更預設架構或移轉物件

-- 變更使用者預設架構
ALTER USER dbo WITH DEFAULT_SCHEMA = emdbuser;

-- 將物件從 emdbuser 移至 dbo
ALTER SCHEMA dbo TRANSFER emdbuser.Borrower;

執行內容切換

實務上不建議永久變更架構或預設值,而是使用 內容切換 暫時以其他使用者身分操作:

EXECUTE AS USER = 'emdbuser';
-- 執行操作
REVERT; -- 切回原身分

這在 .NET 中對應 Impersonate 機制。

查詢物件所屬架構

SELECT o.name AS object_name, s.name AS schema_name
FROM sys.objects o
JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE o.type = 'U';

小結

架構是物件的「杯子」,用戶是「喝水的人」。下一節將探討:一個用戶能用多個杯子嗎?一個杯子能給多人用嗎?請見第二節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved