Den givne løsning dækker ikke, hvor tilladelsen er givet mod skemaet eller selve databasen, som også giver tilladelser mod tabellerne. Dette vil også give dig disse situationer. Du kan bruge en WHERE-klausul mod permission_name for at begrænse til kun 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
Desuden skal db_datawriter kontrolleres for medlemskab, fordi det giver implicitte INSERT-, UPDATE- og DELETE-rettigheder, hvilket betyder, at du ikke vil se det vises i tilladelses-DMV'erne eller deres derivater.