GitHub Copilot in SSMS runs every query with your permissions. Since SSMS 22.7 you can give it its own low-privilege identity per database: create the user, set agentExecuteAsUser in CONSTITUTION.md, grant IMPERSONATE. Tested, with the errors and the trade-offs.
Find every SQL Server identity column close to its data type limit, before inserts fail with Msg 8115: arithmetic overflow converting IDENTITY to int.
SSMS 22 formats T-SQL itself: Ctrl+K, Ctrl+Q formats the window or the selection, Ctrl+Z undoes it. What the defaults change, and the settings worth setting.
Schema Compare in SSMS lists every difference between 2 databases as the change that would make the target match the source. How to run it, read the results the right way round, set the options that matter, and check the generated script before it touches production.
Schema Compare stops with Execution Timeout Expired when its catalog reads cannot get memory or are stuck behind a lock. Check the memory grant queue and whether Windows is short of RAM, then compare again or compare against a .dacpac.
A SQL Server name search can return every row when untrusted input is concatenated into the query. This lab demo compares EXEC with a parameterized sp_executesql call.
RESOURCE_SEMAPHORE waits while SQL Server sits far below max server memory: why the grant pool follows target memory and not the cap, the one query that shows it, and how to let a query run with MAX_GRANT_PERCENT while you free memory.
A masked salary can still be tested with WHERE. This lab example shows the row returned to a low-privilege user and what Dynamic Data Masking does not protect.
Log shipping secondary behind, or a 14420 or 14421 alert just fired? Run this on the monitor server to see the backup, copy and restore ages side by side and which job stopped.
A Row-Level Security filter can hide another tenant’s rows while still allowing a cross-tenant insert. See the lab reproduction, add block predicates, and treat session context as a trust boundary.