General availability: SQL Database Row-Level Security block predicates

30 November 2015

The Row-Level Security (RLS) feature in Azure SQL Database now supports block predicates. In contrast to filter predicates, which limit the rows visible to a user, block predicates prevent a user from inserting, updating, or deleting rows that violate your access criteria. You should use filter and block predicates together to control read and write access to specific rows in a table. For example, RLS is commonly used to prevent tenants from accessing each other’s data in multitenant databases. You can use a filter predicate to limit which rows are visible to each tenant, and now you can reuse the same function as a block predicate to prevent cross-tenant inserts or updates:
CREATE SECURITY POLICY Security.tenantAccessPolicy
 ADD FILTER PREDICATE Security.fn_tenantAccessPredicate(TenantId) ON dbo.MyTable,
 ADD BLOCK PREDICATE Security.fn_tenantAccessPredicate(TenantId) ON dbo.MyTable
For more information, including demos and code samples, check out our announcement blog post: Row-Level Security Block Predicates are Generally Available.

Free account

Sign up now and get $200 in Azure credit

Start for free

Visual Studio

Subscribers get up to $1800 per year of Azure services

Activate now

Start-ups

Join the BizSpark programme and get free Azure services

Learn more