指定されたソリューションは、スキーマまたはデータベース自体に対して権限が付与される場所をカバーしていません。これらは、テーブルに対しても権限を付与します。これにより、これらの状況も発生します。 WHERE 句を permission_name に対して使用して、DELETE のみに制限できます。
SELECT
class_desc
, CASE WHEN class = 0 THEN DB_NAME()
WHEN class = 1 THEN OBJECT_NAME(major_id)
WHEN class = 3 THEN SCHEMA_NAME(major_id) END [Securable]
, USER_NAME(grantee_principal_id) [User]
, permission_name
, state_desc
FROM sys.database_permissions
また、db_datawriter は暗黙的な INSERT、UPDATE、および DELETE 権限を付与するため、メンバーシップをチェックする必要があります。つまり、パーミッション DMV またはその派生物には表示されません。