Sql-Server

如果程序有 EXECUTION GRANT,我是否需要 GRANT 才能插入表格?

  • August 4, 2020

我的數據庫中有五個域使用者和五個角色。GRANT EXECUTE添加到適當的角色。角色包含在其他角色中,即最多我們有一個角色擁有兩個程序的授權,下面還有兩個角色可以訪問四個和三個程序,最後我們有兩個角色。使用此解決方案,如果我將GRANT EXECUTE權限授予最高角色,則所有角色都可以訪問此過程。

我的問題:假設程序有UPDATEINSERT操作。對於給定角色的給定過程是否足夠,GRANT EXECUTE以便使用者可以使用該過程並實際在表上執行UPDATEINSERT操作,或者除了GRANT EXECUTE我需要授予角色UPDATEINSERT給定過程中的所有表之外?

儲存過程使用的對象的權限不會通過完整的所有權鏈進行檢查。因此,當所有涉及的對像都具有相同的所有者(通常是模式所有者)時,無需授予儲存過程使用的對象的權限。在您的情況下,使用者只需要儲存過程執行權限,其中包括通過角色成員資格繼承的權限。

這假定儲存過程中沒有動態 SQL,並且對象駐留在同一數據庫中。有關詳細資訊,請參閱授權和權限文件

引用自:https://dba.stackexchange.com/questions/273182