時態表安全性
適用於:SQL Server 2016 (13.x) 和更新版本 Azure SQL 資料庫 Azure SQL 受控執行個體
若要了解適用於時態表的安全性,請務必了解適用於時態表的安全性原則。 了解這些安全性原則之後,您就已經準備好深入了解關於 CREATE TABLE、 ALTER TABLE及 SELECT 陳述式的安全性。
安全性原則
下表描述適用於時態表的安全性原則︰
原則 | 描述 |
---|---|
啟用/停用系統建立版本功能需要受影響物件上的最高權限 | 啟用和停用 SYSTEM_VERSIONING 需要目前和記錄資料表上的 CONTROL 權限 |
無法直接修改記錄資料 | 當 SYSTEM_VERSIONING 為 ON 時,使用者無法變更記錄資料,而不論其在目前或記錄資料表上的實際權限為何。 這包括資料和結構描述修改。 |
查詢記錄資料需要記錄資料表上的 SELECT 權限 | 只是因為使用者具備目前資料表上的 SELECT 權限,並不表示他們具有記錄資料表上的 SELECT 權限。 |
稽核介面作業會以特定方式來影響記錄資料表︰ | 目前資料表中的稽核設定不會自動套用至歷程記錄資料表。 必須針對歷程記錄資料表明確啟用稽核。 一旦啟用,對歷程記錄資料表的稽核就會定期擷取所有直接存取資料的嘗試 (不論其成功與否)。 SELECT 搭配時態查詢延伸模組會顯示記錄資料表已受到該作業影響。 CREATE/ALTER 時態表也會公開在記錄資料表上發生的權限檢查資訊。 稽核檔案將包含記錄資料表的額外記錄。 目前資料表介面上的 DML 作業會影響記錄資料表,但 additional_info 會提供必要的內容 (DML 是 system_versioning 的結果)。 |
執行結構描述作業
將 SYSTEM_VERSIONING 設為 ON 時,結構描述修改作業會受到限制。
不允許的 ALTER 結構描述作業
作業 | 目前的資料表 | 記錄資料表 |
---|---|---|
DROP TABLE | 不允許 | 不允許 |
ALTER TABLE...SWITCH PARTITION | 僅限 SWITCH IN (請參閱 對時態表進行資料分割) | 僅限 SWITCH OUT (請參閱 對時態表進行資料分割) |
ALTER TABLE...DROP PERIOD | 不允許 | - |
ALTER TABLE...ADD PERIOD | - | 不允許 |
允許的 ALTER TABLE 作業
作業 | 目前 | 記錄 |
---|---|---|
ALTER TABLE...REBUILD | 允許 (獨立) | 允許 (獨立) |
CREATE INDEX | 允許 (獨立) | 允許 (獨立) |
CREATE STATISTICS | 允許 (獨立) | 允許 (獨立) |
建立時態表陳述式的安全性
功能 | 建立新的記錄資料表 | 重複使用現有的記錄資料表 |
---|---|---|
必要的權限 | 資料庫的CREATE TABLE 權限 在建立目前和記錄資料表之結構描述上的ALTER 權限 |
資料庫的CREATE TABLE 權限 在將建立目前資料表之結構描述上的ALTER 權限。 記錄資料表上的CONTROL 權限會指定為建立時態表之 CREATE TABLE 陳述式的一部分 |
稽核 | 稽核顯示使用者已嘗試建立兩個物件。 作業可能失敗的原因是在資料庫中建立資料表的權限不足,或者變更任一個資料表的結構描述的權限不足。 | 稽核顯示時態表已建立。 作業可能失敗的原因是在資料庫中建立資料表的權限不足、變更時態表的結構描述的權限不足,或者在記錄資料表上的權限不足。 |
變更時態表 (SYSTEM_VERSIONING 為 ON/OFF) 陳述式的安全性
功能 | 建立新的記錄資料表 | 重複使用現有的記錄資料表 |
---|---|---|
必要的權限 | 資料庫的CONTROL 權限 資料庫的CREATE TABLE 權限 在建立記錄資料表之結構描述上的ALTER 權限 |
已變更之原始資料表上的CONTROL 權限 記錄資料表上的CONTROL 權限會指定為 ALTER TABLE 陳述式的一部分 |
稽核 | 稽核顯示時態表已變更,同時已建立記錄資料表。 作業可能失敗的原因是在資料庫中建立資料表的權限不足、變更記錄資料表的結構描述的權限不足,或者修改時態表的權限不足。 | 稽核顯示時態表已變更,但作業需要記錄資料表的存取權。 作業可能失敗的原因是記錄資料表上的權限不足,或者目前資料表上的權限不足。 |
SELECT 陳述式的安全性
對於不會影響記錄資料表的SELECT 陳述式, SELECT 權限會維持不變。 對於會影響記錄資料表的 SELECT 陳述式,在目前資料表和記錄資料表上都需要 SELECT 權限。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應