Sql-Server
如果程序有 EXECUTION GRANT,我是否需要 GRANT 才能插入表格?
我的數據庫中有五個域使用者和五個角色。
GRANT EXECUTE
添加到適當的角色。角色包含在其他角色中,即最多我們有一個角色擁有兩個程序的授權,下面還有兩個角色可以訪問四個和三個程序,最後我們有兩個角色。使用此解決方案,如果我將GRANT EXECUTE
權限授予最高角色,則所有角色都可以訪問此過程。我的問題:假設程序有
UPDATE
和INSERT
操作。對於給定角色的給定過程是否足夠,GRANT EXECUTE
以便使用者可以使用該過程並實際在表上執行UPDATE
和INSERT
操作,或者除了GRANT EXECUTE
我需要授予角色UPDATE
和INSERT
給定過程中的所有表之外?
儲存過程使用的對象的權限不會通過完整的所有權鏈進行檢查。因此,當所有涉及的對像都具有相同的所有者(通常是模式所有者)時,無需授予儲存過程使用的對象的權限。在您的情況下,使用者只需要儲存過程執行權限,其中包括通過角色成員資格繼承的權限。
這假定儲存過程中沒有動態 SQL,並且對象駐留在同一數據庫中。有關詳細資訊,請參閱授權和權限文件。