主體 (Database Engine)

「主體」(Principal) 是可要求 SQL Server 資源的實體。 主體就像其他 SQL Server 授權模型的元件一樣,可以階層方式安排。 主體的影響範圍視主體的定義範圍 (Windows、伺服器、資料庫),以及主體是否可分割或者是一個集合而定。 「Windows 登入」是不可分割主體的一個範例,而「Windows 群組」則是主體為集合的範例。 每個主體都有一個安全性識別碼 (SID)。

Windows 層級主體

  • Windows 網域登入

  • Windows 本機登入

SQL Server 層級主體

  • SQL Server 登入

  • 伺服器角色

資料庫層級主體

  • 資料庫使用者

  • 資料庫角色

  • 應用程式角色

SQL Server sa 登入

SQL Server sa 登入為伺服器層級的主體。 根據預設,安裝執行個體時會建立它。 從 SQL Server 2005 開始,sa 的預設資料庫是 master。 這是和舊版 SQL Server 不同的一項行為變更。

public 資料庫角色

每個資料庫使用者都屬於 public 資料庫角色。 當使用者未被授與或拒絕安全性實體的特定權限時,該使用者會繼承授與給該安全性實體之 public 的權限。

INFORMATION_SCHEMA 與 sys

每個資料庫都包含兩個在目錄檢視中顯示為使用者的實體:INFORMATION_SCHEMA 和 sys。 SQL Server 需要這些實體。 它們並非主體,也不能被修改或卸除。

以憑證為基礎的 SQL Server 登入

以兩個 ## 符號括住的伺服器主體名稱僅供內部系統使用。 在安裝 SQL Server 時,將會從憑證建立下列主體,而且不應該刪除它們。

  • ##MS_SQLResourceSigningCertificate##

  • ##MS_SQLReplicationSigningCertificate##

  • ##MS_SQLAuthenticatorCertificate##

  • ##MS_AgentSigningCertificate##

  • ##MS_PolicyEventProcessingLogin##

  • ##MS_PolicySigningCertificate##

  • ##MS_PolicyTsqlExecutionLogin##

guest 使用者

每個資料庫都包括 guest。 具有資料庫存取權但在資料庫中沒有使用者帳戶的使用者,將繼承授與 guest 使用者的權限。 無法卸除 guest 使用者,但可透過撤銷其 CONNECT 權限予以停用。 在任何資料庫 (不含 master 或 tempdb) 內執行 REVOKE CONNECT FROM GUEST,即可撤銷 CONNECT 權限。

用戶端和資料庫伺服器

根據定義,用戶端和資料庫伺服器都是安全性主體,而且可以維護其安全。 建立安全的網路連接之前,這些實體可以進行相互驗證。 SQL Server 支援 Kerberos 驗證通訊協定,該通訊協定可定義用戶端與網路驗證服務的互動方式。

相關工作

《SQL Server 線上叢書》的本節中包括下列主題:

請參閱

參考

sys.database_principals (Transact-SQL)

sys.server_principals (Transact-SQL)

sys.sql_logins (Transact-SQL)

sys.database_role_members (Transact-SQL)

伺服器層級角色

資料庫層級角色

概念

保護 SQL Server 的安全