適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 資料庫
主體是可要求 SQL Server 資源的實體。 主體就像其他 SQL Server 授權模型的元件一樣,可以階層方式安排。 主體的影響範圍,取決於主體定義的範圍:Windows、伺服器、資料庫;以及主體是否為不可分割或集合。 「Windows 登入」是不可分割主體的一個範例,而「Windows 群組」則是主體為集合的範例。 每個主體都有一個安全識別碼 (SID)。 此主題適用於所有版本的 SQL Server,但 SQL Database 或 Azure Synapse Analytics 中伺服器層級主體有一些限制。
Note
Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。
SQL Server 層級主體
- SQL Server 驗證登入
- Windows 使用者的 Windows 驗證登入
- Windows 群組的 Windows 驗證登入
- Microsoft Entra 使用者的 Microsoft Entra 驗證登入
- Microsoft Entra 群組的 Microsoft Entra 驗證登入
- Microsoft Entra 服務主體的 Microsoft Entra 驗證登入
- 伺服器角色
資料庫層級主體
- 資料庫使用者 (如需資料庫使用者類型的詳細資訊,請參閱 CREATE USER (Transact-SQL)。
- 資料庫角色
- 應用角色
sa 登入
SQL Server sa 登入是伺服器層級主體。 根據預設,它會在安裝執行個體時建立。 從 SQL Server 2005 (9.x) 開始,的 sa 預設資料庫是 master。 這是和舊版 SQL Server 不同的一項行為變更。
sa 登入是 sysadmin 固定伺服器層級角色成員。 登入具有 sa 伺服器上的所有權限,且無法限制。 登錄名無法刪除,但可以將其禁用,以防止任何人使用。
dbo 使用者和 dbo 架構
dbo 使用者是每個資料庫中的特殊使用者主體。 所有 SQL Server 系統管理員、sysadmin 固定伺服器角色成員、sa 登入以及資料庫擁有者,都是以 dbo 使用者的身分進入資料庫。
dbo使用者擁有資料庫中的所有許可權,且無法限制或捨棄。
dbo 代表資料庫擁有者,但 dbo 使用者帳戶與 db_owner 固定資料庫角色不同,而 db_owner 固定資料庫角色與記錄為資料庫擁有者的使用者帳戶不同。
dbo 使用者擁有 dbo 結構描述。 除非指定其他結構描述,否則 dbo 結構描述是所有使用者的預設結構描述。
dbo模式無法刪除。
public 伺服器角色和資料庫角色
每個登入都屬於 public 固定伺服器角色,而每個資料庫使用者都屬於 public 資料庫角色。 當登入或使用者尚未授與或拒絕安全性實體的特定許可權時,登入或使用者會繼承該安全性實體上授與的 public 許可權。
public無法卸除固定伺服器角色和public固定資料庫角色。 不過,您可以撤銷 public 角色的權限。 預設會將許多權限指派給 public 角色。 在資料庫中執行例行作業時,需要其中的大部分權限,而每個人應該都有可以執行的動作類型。 在撤回public登入或使用者的權限時要小心,因為這會影響所有相關的登入或使用者。 一般而言,您不應該拒絕 public 的許可權,因為拒絕陳述會覆寫您可能對個人發出的任何授權陳述。
INFORMATION_SCHEMA 和 sys 使用者和模式
每個資料庫都包含兩個在目錄檢視中顯示為使用者的實體:INFORMATION_SCHEMA 和 sys。 需要有這些實體,以供 Database Engine 內部使用。 它們無法修改或刪除。
以憑證為基礎的 SQL Server 登入
以兩個 ## 符號括住的伺服器主體名稱僅供內部系統使用。 下列主體是在安裝 SQL Server 時從憑證建立,而且不應刪除。
- ##MS_SQLResourceSigningCertificate##
- ##MS_SQLReplicationSigningCertificate##
- ##MS_SQLAuthenticatorCertificate##
- ##MS_AgentSigningCertificate##
- ##MS_PolicyEventProcessingLogin##
- ##MS_PolicySigningCertificate##
- ##MS_PolicyTsqlExecutionLogin##
這些主體帳戶沒有系統管理員可以變更的密碼,因為它們是以發行給 Microsoft 的憑證為基礎。
guest用戶
每個資料庫都包括 guest不同的一項行為變更。 授與 guest 使用者的權限會被擁有資料庫存取權但在資料庫中沒有使用者帳戶的使用者繼承。
guest使用者無法卸除,但可以透過撤銷其CONNECT許可權來停用它。 可以透過在CONNECT或REVOKE CONNECT FROM GUEST;以外的任何資料庫中執行master來撤銷tempdb權限。
Limitations
- 在 Microsoft Fabric 的 SQL 資料庫中,僅支援資料庫層級的使用者與角色。 伺服器層級的登入、角色以及 sa 帳戶無法使用。 在 Microsoft Fabric 的 SQL 資料庫中,唯一支援的 Microsoft Entra ID 是資料庫使用者的認證方法。 如需詳細資訊,請參閱 Microsoft Fabric 中的 SQL 資料庫中的授權。
相關工作
如需設計許可權系統的相關信息,請參閱開始使用 資料庫引擎許可權。
下列文章包含在 SQL Server 線上叢書的本節中: