-- 查找包含特定关键词的最近执行语句,用于排查 IDENTITY_INSERT 相关操作 SELECT TOP 20 qt.text AS sql_text, qs.execution_count, qs.last_execution_time, qs.total_elapsed_time, qs.total_logical_reads FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt WHERE qt.text LIKE'%zhangsan%' OR qt.text LIKE'%IDENTITY_INSERT%' ORDERBY qs.last_execution_time DESC;
-- 专门查找 ALTER 语句,用于确认是否有实际的表结构修改操作 SELECT TOP 10 qt.text AS sql_text, qs.last_execution_time FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt WHERE qt.text LIKE'%ALTER%' AND qt.text LIKE'%zhangsan%' ORDERBY qs.last_execution_time DESC;
-- 查看用户所属的数据库角色,了解用户通过角色继承了哪些权限 SELECT p.name AS principal_name, p.type_desc AS principal_type, r.name AS role_name FROM sys.database_principals p LEFTJOIN sys.database_role_members rm ON p.principal_id = rm.member_principal_id LEFTJOIN sys.database_principals r ON rm.role_principal_id = r.principal_id WHERE p.name ='LUCIFER';
-- 查看用户直接被授予的对象级权限,显示用户对特定对象(表、视图等)的权限 SELECT p.permission_name, p.state_desc, s.name AS schema_name, o.name AS object_name FROM sys.database_permissions p LEFTJOIN sys.objects o ON p.major_id = o.object_id LEFTJOIN sys.schemas s ON o.schema_id = s.schema_id WHERE p.grantee_principal_id = USER_ID('LUCIFER') ORDERBY s.name, o.name;
-- 查看用户的所有有效权限(包括通过角色继承的),这是最全面的权限检查,包括直接权限和角色权限 SELECT p.permission_name, p.state_desc, p.class_desc, ISNULL(s.name, '') AS schema_name, ISNULL(o.name, '') AS object_name FROM sys.database_permissions p LEFTJOIN sys.objects o ON p.major_id = o.object_id LEFTJOIN sys.schemas s ON o.schema_id = s.schema_id WHERE p.grantee_principal_id = USER_ID('LUCIFER') OR p.grantee_principal_id IN ( SELECT role_principal_id FROM sys.database_role_members WHERE member_principal_id = USER_ID('LUCIFER') ) ORDERBY p.permission_name, s.name, o.name;