Giải pháp đã cho không bao gồm trường hợp quyền được cấp đối với lược đồ hoặc chính cơ sở dữ liệu, vốn cũng cấp quyền đối với các bảng. Điều này cũng sẽ cung cấp cho bạn những tình huống. Bạn có thể sử dụng mệnh đề WHERE đối với allow_name để hạn chế chỉ 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
Ngoài ra, db_datawriter cần phải được kiểm tra tư cách thành viên vì nó cung cấp các quyền CHÈN, CẬP NHẬT và XÓA ngầm, nghĩa là bạn sẽ không thấy nó hiển thị trong DMV cho phép hoặc các công cụ phái sinh của chúng.