We have many solutions for versioning data through time. One of the cleanest, most transparent and pretty effortless in my opinion are Temporal Tables which are available in MS SQL 2016+ (compatibility level 130+). What’s really great about that approach is that unless you need to retrieve state from the certain point in time or browse through… Read More »
My last blog post was about a feature in SQL Server called Row Level Security Policy. It’s quite simple and known feature for people who’re working directly with databases. But most .NET developers are using ORM of some kind to work with DB, and some of them tend to be blind to stuff that is not… Read More »
In some scenarios, like single-database multi-tenant or soft delete ones, you could want to restrict access to your rows based on a value stored in one or more values stored in your columns in example IsDeleted flag or some kind of TenantId column. Since SQL Server 2016 we have a wonderful tool for that called Row… Read More »
When I’ve started working with Azure SQL there were some differences to SQL Server that I’ve needed to get used to. One of the first was that you just can’t query other databases that you’re already in, querying for [OtherDB].[dbo].[SomeTable] just wasn’t possible anymore. It appears that it may not be possible, but you actually… Read More »
Storing data in multitenant environments always required some consideration. With Cosmos DB we have 2 options that are really worthy of our attention so let’s weight some pros and cons.