{"id":5688,"date":"2015-09-29T16:00:36","date_gmt":"2015-09-29T14:00:36","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/"},"modified":"2015-09-29T16:00:36","modified_gmt":"2015-09-29T14:00:36","slug":"row-level-security-rls-is-also-coming-to-ms-sql-server","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/","title":{"rendered":"Row Level Security (RLS) is also coming to MS SQL Server"},"content":{"rendered":"<p>Why \u201calso\u201d in my title? On 29 August, my colleague <a title=\"Daniel Westermann\" href=\"http:\/\/dbi-services.com\/blog\/author\/daniel-westermann\/\" target=\"_blank\">Daniel Westermann<\/a> wrote an article about <a title=\"row level security is coming to postgresql\" href=\"http:\/\/dbi-services.com\/blog\/row-level-security-is-coming-to-postgresql\/\" target=\"_blank\">Row Level Security in the next version of PostgreSQL<\/a>.<\/p>\n<p>Row Level Security called also RLS is a new feature in SQL Server 2016 and of course in SQL Azure.<br \/>\nThis new security in SQL Server returns only rows that the user has permission to access.<\/p>\n<p>The best way to understand is with a little sample and I use Daniel&#8217;s example.<br \/>\nI create a database RLS_TEST and a table t with an id, a name and a salary columns.<br \/>\nI create also 2 SQL logins u1 and u2 with specific permissions on columns.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4087 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05.png\" alt=\"RLS05\" width=\"300\" height=\"114\" \/><\/a> I test the select with my 2 users.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS07.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4089 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS07.png\" alt=\"Select with users u1 and u2\" width=\"300\" height=\"133\" \/><\/a><\/p>\n<p>In a Select *, it is logic with permissions to have an error for my 2 logins.<br \/>\nWhen I select the good columns, no problems.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS08.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4090 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS08.png\" alt=\"Select with users u1 and u2 with named columns\" width=\"297\" height=\"300\" \/><\/a><\/p>\n<p>A best practice is to create a separate schema for RLS objects.<br \/>\nI create the schema &#8220;rls&#8221;.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS06.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4088 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS06.png\" alt=\"create the schema rls\" width=\"300\" height=\"263\" \/><\/a><\/p>\n<p>Like Daniel, I will a filter with the condition: if the user is \u201cu2\u201d and this user is selecting from \u201ct\u201d then only let the user \u201cu2\u201d see rows that have a salary less than 3000.<\/p>\n<p>The first step is to create a function with these conditions and I add a condition for the db_owner role to be sure to see all rows as owner.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS09.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4091 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS09.png\" alt=\"new function for security policy\" width=\"300\" height=\"146\" \/><\/a><\/p>\n<p>The second step is to create the security policy associated to the function.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS10.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4092 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS10.png\" alt=\"Create Security Policy\" width=\"300\" height=\"145\" \/><\/a><\/p>\n<p>You can see in the Security folder from the database with SSMS, a new folder Security Policies with this policy.<br \/>\nBy default, when you create the policy, its status is enable.<\/p>\n<p>I launch select from dbo, u1 and u2 sides and see the result:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS11.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4093 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS11.png\" alt=\"select with security policy\" width=\"300\" height=\"216\" \/><\/a><\/p>\n<p>You can notice that for u2, we have 1 row like my filter is set.<br \/>\nThe second point is for u1, I have nothing.<br \/>\nTo have the select with the user u1, I need to add another condition like USER_NAME()=&#8217;u1&#8242;.<br \/>\nBut I will also filter with the condition: if the user is \u201cu1\u201d and this user is selecting from \u201ct\u201d then only let the user \u201cu1\u201d see rows that have the name name1 and name2.<\/p>\n<p>I try to alter my function to add this condition:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS12.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4094 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS12.png\" alt=\"Alter the function\" width=\"300\" height=\"137\" \/><\/a><\/p>\n<p>As you can see, I receive the error message:<br \/>\n<span style=\"color: red\">Msg 3729, Level 16, State 3, Procedure fn_salarypredicate, Line 4<br \/>\nCannot ALTER &#8216;rls.fn_salarypredicate&#8217; because it is being referenced by object &#8216;SalarySecurityPolicy&#8217;.<\/span><br \/>\nThe function is linked to the policy.<\/p>\n<p>I try with a DISABLE STATE for the Policy, but I have the same message:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS13.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4095 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS13.png\" alt=\"Alter the function with DISABLE STATE for the Policy\" width=\"300\" height=\"197\" \/><\/a><\/p>\n<p>The only way that I have found is to drop the policy before the change&#8230;<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS14.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4096 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS14.png\" alt=\"Alter the function with DROP Policy\" width=\"300\" height=\"259\" \/><\/a><\/p>\n<p>I run all select and the result is what I expected<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS15.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4097 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS15.png\" alt=\"Select with the new policy\" width=\"300\" height=\"261\" \/><\/a><\/p>\n<p>Daniel indicate that in PostgreSQL, you have a new system information function &#8220;row level security active&#8221;. In SQL server, you have also new system views:<\/p>\n<ul>\n<ul>\n<li><a title=\"DMV sys.security_policies\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/dn765130.aspx\" target=\"_blank\">sys.security_policies<\/a><\/li>\n<li><a title=\"DMV sys.security_predicates\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/dn765134.aspx\" target=\"_blank\">sys.security_predicates<\/a><\/li>\n<\/ul>\n<\/ul>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS16.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-4098 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS16.png\" alt=\"new DMV Policy\" width=\"300\" height=\"84\" \/><\/a><br \/>\nConclusion: Same as Daniel \ud83d\ude09 &#8230; It is really a great feature from SQL Server 2016 and useful in case of sensible data like salaries or medicine information.<br \/>\nMore information about <a title=\"Row Level Security on Msdn\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/dn765131%28v=sql.130%29.aspx\" target=\"_blank\">Row Level Security on msdn<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why \u201calso\u201d in my title? On 29 August, my colleague Daniel Westermann wrote an article about Row Level Security in the next version of PostgreSQL. Row Level Security called also RLS is a new feature in SQL Server 2016 and of course in SQL Azure. This new security in SQL Server returns only rows that [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":5701,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,48],"tags":[49,25,566],"type_dbi":[],"class_list":["post-5688","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-technology-survey","tag-microsoft","tag-security","tag-sql-server-2016"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Row Level Security (RLS) is also coming to MS SQL Server - dbi Blog<\/title>\n<meta name=\"description\" content=\"Row Level Security is a new feature in SQL Server 2016 and of course SQL Azure. This new security in SQL Server returns only rows that the user have permission to access\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Row Level Security (RLS) is also coming to MS SQL Server\" \/>\n<meta property=\"og:description\" content=\"Row Level Security is a new feature in SQL Server 2016 and of course SQL Azure. This new security in SQL Server returns only rows that the user have permission to access\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-29T14:00:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"779\" \/>\n\t<meta property=\"og:image:height\" content=\"295\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Haby\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Haby\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/\"},\"author\":{\"name\":\"St\u00e9phane Haby\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0bfb7484ae81c8980fc2b11334f803b\"},\"headline\":\"Row Level Security (RLS) is also coming to MS SQL Server\",\"datePublished\":\"2015-09-29T14:00:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/\"},\"wordCount\":515,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/RLS05-1.png\",\"keywords\":[\"Microsoft\",\"Security\",\"SQL Server 2016\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Technology Survey\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/\",\"name\":\"Row Level Security (RLS) is also coming to MS SQL Server - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/RLS05-1.png\",\"datePublished\":\"2015-09-29T14:00:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0bfb7484ae81c8980fc2b11334f803b\"},\"description\":\"Row Level Security is a new feature in SQL Server 2016 and of course SQL Azure. This new security in SQL Server returns only rows that the user have permission to access\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/RLS05-1.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/RLS05-1.png\",\"width\":779,\"height\":295},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/row-level-security-rls-is-also-coming-to-ms-sql-server\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Row Level Security (RLS) is also coming to MS SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0bfb7484ae81c8980fc2b11334f803b\",\"name\":\"St\u00e9phane Haby\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"caption\":\"St\u00e9phane Haby\"},\"description\":\"St\u00e9phane Haby has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies such as installation, migration, best practices, and performance analysis etc. He is also an expert in Microsoft Business Intelligence solutions such as SharePoint, SQL Server and Office. Futhermore, he has many years of .NET development experience in the banking sector and other industries. In France, he was one of the first people to have worked with Microsoft Team System. He has written several technical articles on this subject. St\u00e9phane Haby is Microsoft Most Valuable Professional (MVP) as well as Microsoft Certified Solutions Associate (MCSA) and\u00a0Microsoft Certified Solutions Expert (MCSE) for SQL Server 2012. He is also Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified IT Professional (MCITP) for SQL Server 2008 as well as ITIL Foundation V3 certified. He holds a Engineer diploma in industrial computing and automation from France. His branch-related experience covers Chemicals &amp; Pharmaceuticals, Banking \\\/ Financial Services, and many other industries.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/stephane-haby\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Row Level Security (RLS) is also coming to MS SQL Server - dbi Blog","description":"Row Level Security is a new feature in SQL Server 2016 and of course SQL Azure. This new security in SQL Server returns only rows that the user have permission to access","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"Row Level Security (RLS) is also coming to MS SQL Server","og_description":"Row Level Security is a new feature in SQL Server 2016 and of course SQL Azure. This new security in SQL Server returns only rows that the user have permission to access","og_url":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/","og_site_name":"dbi Blog","article_published_time":"2015-09-29T14:00:36+00:00","og_image":[{"width":779,"height":295,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05-1.png","type":"image\/png"}],"author":"St\u00e9phane Haby","twitter_card":"summary_large_image","twitter_misc":{"Written by":"St\u00e9phane Haby","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/"},"author":{"name":"St\u00e9phane Haby","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b"},"headline":"Row Level Security (RLS) is also coming to MS SQL Server","datePublished":"2015-09-29T14:00:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/"},"wordCount":515,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05-1.png","keywords":["Microsoft","Security","SQL Server 2016"],"articleSection":["Database Administration &amp; Monitoring","Technology Survey"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/","url":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/","name":"Row Level Security (RLS) is also coming to MS SQL Server - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05-1.png","datePublished":"2015-09-29T14:00:36+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b"},"description":"Row Level Security is a new feature in SQL Server 2016 and of course SQL Azure. This new security in SQL Server returns only rows that the user have permission to access","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05-1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RLS05-1.png","width":779,"height":295},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/row-level-security-rls-is-also-coming-to-ms-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Row Level Security (RLS) is also coming to MS SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b","name":"St\u00e9phane Haby","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","caption":"St\u00e9phane Haby"},"description":"St\u00e9phane Haby has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies such as installation, migration, best practices, and performance analysis etc. He is also an expert in Microsoft Business Intelligence solutions such as SharePoint, SQL Server and Office. Futhermore, he has many years of .NET development experience in the banking sector and other industries. In France, he was one of the first people to have worked with Microsoft Team System. He has written several technical articles on this subject. St\u00e9phane Haby is Microsoft Most Valuable Professional (MVP) as well as Microsoft Certified Solutions Associate (MCSA) and\u00a0Microsoft Certified Solutions Expert (MCSE) for SQL Server 2012. He is also Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified IT Professional (MCITP) for SQL Server 2008 as well as ITIL Foundation V3 certified. He holds a Engineer diploma in industrial computing and automation from France. His branch-related experience covers Chemicals &amp; Pharmaceuticals, Banking \/ Financial Services, and many other industries.","url":"https:\/\/www.dbi-services.com\/blog\/author\/stephane-haby\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/5688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=5688"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/5688\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/5701"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=5688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=5688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=5688"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=5688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}