This post demonstrates how to secure reporting views in SQL Server by combining schema‑level permissions with ownership chaining. You’ll create separate schemas for HR data and reporting, define a role and user, then grant and deny the appropriate permissions. The walkthrough shows how a broken ownership chain leads to permission errors and how to realign schema ownership to restore access. It includes scripts for setup, testing via EXECUTE AS, metadata inspection, and clean‑up. By the end, you’ll understand how to expose safe views while protecting sensitive base tables under the least‑privilege model.
PostgreSQL’s pg_visibility: Peeking Under the Hood of Table Storage
When most people think about PostgreSQL internals, they picture tables, indexes, and perhaps the VACUUM process. Tucked away in the contrib extensions, however, is a tool that exposes what really sits on disk: the pg_visibility extension. By querying it, you see how PostgreSQL tracks visibility and freezing at the page level—information that directly affects vacuum efficiency and index-only scans.
Troubleshooting SQL Server Permissions
Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.
Avoiding the Halloween Problem in SQL Server with Safer UPDATE Patterns
The Halloween Problem can silently degrade SQL Server performance by causing rows to be updated multiple times in a single statement. This post explains how SQL Server’s internal table spool (eager spool) protects against it—and why that can hurt your workload under heavy load. You’ll learn two simple patterns—using CTEs or temp tables—to materialize target rows before the update, eliminating the need for spooky spools. Finally, we cover how batch updates help control locking, reduce escalation risk, and improve concurrency.
Why SSMS 21 Feels Like a New Era for SQL Server Database Professionals
For years, SQL Server Management Studio has anchored day-to-day database work. Most improvements since the 2010s were minor interface tweaks or new wizards that left the underlying 32-bit shell untouched. SSMS 21 marks a clean break: it moves to a modern 64-bit platform, folds indispensable tools into the core product, and refreshes the entire interface without changing the familiar Object Explorer + Query Editor workflow. The result is the same trusted environment—only faster, more accessible, and far better equipped for today’s workloads.
Index Maintenance on Your SQL Server VLDBs
Most database administrators are comfortable with the daily tasks of backup, CHECKDB, index maintenance, and statistics updates. The available guidance for those topics is extensive. Much less has been written about caring for estates that contain hundreds of databases—or a single database large enough to strain conventional maintenance windows. This post will focus on options that help when individual tables or complete databases grow beyond the point where “standard” maintenance jobs finish in a reasonable time.
Verifying SQL Server Backups with PowerShell and SMO
Regularly restoring test copies of your databases is the gold-standard proof that your backups work. Between those tests, however, RESTORE VERIFYONLY offers a fast way to confirm that a backup file is readable, that its page checksums are valid, and that the media set is complete. In this post you will see how to run that command from PowerShell by invoking SQL Server Management Objects (SMO), turning a one-off verification into a repeatable step you can schedule across all your servers.
Optimizing SQL Server with Indirect Checkpoints and Target Recovery Time
A checkpoint is a background process that writes dirty pages to disk. A checkpoint performs a full scan of the pages in the buffer pool, lists all the dirty pages that are yet to be written to disk, and finally writes those pages to disk. In SQL instances that do not have many dirty pages in the buffer pool, this is a trivial operation. However, with SQL instances that have OLTP databases, use more memory and/or involve sequential scanning of all pages, the performance of the system could be impacted.
Five SQL Server 2025 Enhancements DBAs Will Notice
There is a lot to be excited about in SQL Server 2025! When thinking about features that may not get as much attention as others, yet will make a real difference in the lives of DBAs, I have selected my top 5 enhancements for SQL Server 2025. These improvements may not make the headlines, but they address pain points we’ve all experienced as DBAs. Please let me know if I’ve left any of your favorites off the list.
Unlocking psql: Meta-Commands that Supercharge Your PostgreSQL CLI Work
If you manage PostgreSQL from a terminal you already know psql, the interactive client that ships with every installation. Most developers use it for the basics—running SELECT statements, loading a .sql file, maybe poking around with \dt to see which tables exist. Beneath that familiar surface, though, psql hides a rich toolbox of meta-commands. These commands, all prefixed with a backslash, live inside the client. They’re not SQL, they’re shortcuts built into psql itself, and they can make everyday tasks faster and far less error-prone.