Detail of a building in Ottawa, Canada

SQL Server 2019 is here

With the release of SQL Server 2019, I wanted to highlight in a single place some things that I’m excited about. Drawing on sessions I presented this year at SQLBits and SQL Saturday Edmonton respectively, these are features in SQL Server 2019 for the busy DBA: UTF-8 in-engine support Intelligent query processing features Replacing sqlcmd
-> Continue reading SQL Server 2019 is here

A steel padlock

When security and news collide

Behold! There’s a scary monster called skip‑2.0, announced by ESET: This backdoor targets MSSQL Server 11 and 12, allowing the attacker to connect stealthily to any MSSQL account by using a magic password – while automatically hiding these connections from the logs. Such a backdoor could allow an attacker to stealthily copy, modify or delete
-> Continue reading When security and news collide

Speaking at SQL Saturday Oregon

SQL Saturday Oregon — in the city of Portland — is taking place next weekend on Saturday November 2nd, 2019, and I’ll be presenting a revised edition of my session “Back to the Future with Temporal Tables.” It’s the Saturday before PASS Summit 2019 which is once again in Seattle. I’m giving two sessions there
-> Continue reading Speaking at SQL Saturday Oregon

Green rope meshwork

Using indexed views? What is an imprecise or non-deterministic convert?

After last week’s post about using WITH (NOEXPAND) to query indexed views even on SQL Server Enterprise Edition, this week is a short but interesting side-road into deterministic values, and why it is important to get your data types correct. Longtime readers will know I care deeply about data types. Here is a T-SQL query
-> Continue reading Using indexed views? What is an imprecise or non-deterministic convert?

A filing cabinet drawer containing index cards

Using indexed views? Don’t forget this important tip.

Today after fighting with designing a view that let me create a clustered index on it (indexed views — also known as materialized views — are awesome in the right context!), I kept running into the same problem whenever I clicked Display Estimated Execution Plan in SQL Server Management Studio. The problem was that the plan was doing
-> Continue reading Using indexed views? Don’t forget this important tip.

silhouette of people standing on mirror during golden hour

Gatekeeping and Accessibility

In my final post about gatekeeping in technology, I have to come clean about something. Let’s go through this journey together. In the first post we spoke about what gatekeeping is. In the second we looked at choosing our words carefully. In the third post, we looked at diversity in the workplace, and also how
-> Continue reading Gatekeeping and Accessibility

SQL Server 2019 on Docker no longer runs as root by default

In my home lab I have an Ubuntu virtual machine that runs both SQL Server 2017 and SQL Server 2019 in Docker containers.

After SQL Server 2019 Release Candidate 1 was released, when I performed my usual migration to get the latest version, I noticed that the command line for the SQL Server instance was different.

I used sudo docker ps -a --no-trunc to see the full command, which is emulated below (note: this output is heavily abbreviated).

[…]

Gatekeeping and the lack of diversity in the workplace

Recently I have become more vocal on Twitter and on my personal blog about my social activism. For the record, I have been an activist for LGBTQIA+ rights since 2001, so if this comes as a surprise to anyone, you haven’t been paying attention. This activism gives me a unique opportunity in my roles as
-> Continue reading Gatekeeping and the lack of diversity in the workplace

Convert legacy password storage without aggravating your users

In a previous post I wrote about storing password hashes in a database, which raises the question of how to convert an existing legacy password storage system to use hashes (or even no passwords!) without annoying the people who use your system. Dial ‘S’ for Secret Let’s assume that you have inherited a database which stores passwords
-> Continue reading Convert legacy password storage without aggravating your users