{"id":657,"date":"2024-07-16T07:55:30","date_gmt":"2024-07-16T12:55:30","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=657"},"modified":"2024-07-16T07:55:31","modified_gmt":"2024-07-16T12:55:31","slug":"implementing-application-roles-sql-server","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=657","title":{"rendered":"The Application Role: Implementing Application Roles with SQL Server"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Implementing application roles in SQL Server is an important practice for managing database security and permissions for applications. Application roles offer a controlled method for applications to access the database, ensuring that permissions are granted specifically to the application rather than individual users. This approach enhances security by minimizing the risk of unauthorized access and simplifies permission management. In this guide, we&#8217;ll explore the steps to implement application roles in SQL Server, the key concepts involved, and the benefits of using this method.<\/p>\n<h3>How to Implement Application Roles in SQL Server<\/h3>\n<p>To implement an application role, you first create an application role within the SQL database used by your application. This role will have the necessary permissions required by the application, ensuring that users do not have direct login credentials. Instead, they access the database through the application, which utilizes the application role.<\/p>\n<h3>Key Concepts of Application Roles<\/h3>\n<h4>Application Role Creation<\/h4>\n<ul>\n<li>Application roles are created at the database level.<\/li>\n<li>They are protected with a password that the application must use to activate the role.<\/li>\n<\/ul>\n<h4>Permission Assignment<\/h4>\n<ul>\n<li>Permissions are granted to the application role rather than individual users.<\/li>\n<li>These permissions define what actions the application can perform within the database.<\/li>\n<\/ul>\n<h4>Role Activation<\/h4>\n<ul>\n<li>When the application connects to the database, it activates the application role using the <code>sp_setapprole<\/code> stored procedure and the role\u2019s password.<\/li>\n<li>Once activated, the application role\u2019s permissions take precedence over the individual user\u2019s permissions.<\/li>\n<\/ul>\n<h4>Security Context<\/h4>\n<ul>\n<li>After activation, the database session runs under the security context of the application role.<\/li>\n<li>This means all operations performed during this session are governed by the permissions granted to the application role.<\/li>\n<\/ul>\n<h4>Reversion to Previous State<\/h4>\n<ul>\n<li>The application can revert to its previous security context using the <code>sp_unsetapprole<\/code> stored procedure.<\/li>\n<li>This is typically done once the application no longer needs to perform operations that require the application role\u2019s permissions.<\/li>\n<\/ul>\n<h3>Steps to Implement Application Roles<\/h3>\n<h4>1. Create an Application Role<\/h4>\n<p>First, create the application role using the <code>CREATE APPLICATION ROLE<\/code> statement:<\/p>\n<pre><code>USE YourDatabase;\nGO\nCREATE APPLICATION ROLE YourAppRole\nWITH PASSWORD = 'StrongPasswordHere';\nGO<\/code><\/pre>\n<h4>2. Grant Permissions to the Application Role<\/h4>\n<p>Next, grant the necessary permissions to the application role:<\/p>\n<pre><code>GRANT SELECT, INSERT, UPDATE, DELETE ON YourTable TO YourAppRole;\nGO<\/code><\/pre>\n<h4>3. Activate the Application Role in Your Application<\/h4>\n<p>To use the application role, the application must activate it by using the <code>sp_setapprole<\/code> stored procedure. This can be done in the application code where you establish the connection to the database:<\/p>\n<pre><code>DECLARE @cookie varbinary(8000);\nEXEC sp_setapprole 'YourAppRole', 'StrongPasswordHere', @fCreateCookie = true, @cookie = @cookie OUTPUT;<\/code><\/pre>\n<h4>4. Revert the Application Role<\/h4>\n<p>After the necessary operations are performed, revert the application role to its previous state using the cookie returned by <code>sp_setapprole<\/code>:<\/p>\n<pre><code>EXEC sp_unsetapprole @cookie;<\/code><\/pre>\n<h3>Example in Application Code<\/h3>\n<p>Here\u2019s a simplified example in C# for a .NET application using ADO.NET:<\/p>\n<pre><code>using System;\nusing System.Data;\nusing System.Data.SqlClient;\n\nclass Program\n{\n    static void Main()\n    {\n        string connectionString = \"your_connection_string_here\";\n\n        using (SqlConnection connection = new SqlConnection(connectionString))\n        {\n            connection.Open();\n\n            \/\/ Activate application role\n            SqlCommand command = new SqlCommand(\"sp_setapprole\", connection);\n            command.CommandType = CommandType.StoredProcedure;\n            command.Parameters.AddWithValue(\"rolename\", \"YourAppRole\");\n            command.Parameters.AddWithValue(\"password\", \"StrongPasswordHere\");\n\n            SqlParameter cookie = new SqlParameter(\"cookie\", SqlDbType.VarBinary, 8000)\n            {\n                Direction = ParameterDirection.Output\n            };\n            command.Parameters.Add(cookie);\n\n            command.ExecuteNonQuery();\n\n            \/\/ Perform database operations\n\n            \/\/ Revert application role\n            SqlCommand unsetCommand = new SqlCommand(\"sp_unsetapprole\", connection);\n            unsetCommand.CommandType = CommandType.StoredProcedure;\n            unsetCommand.Parameters.AddWithValue(\"cookie\", cookie.Value);\n            unsetCommand.ExecuteNonQuery();\n        }\n    }\n}<\/code><\/pre>\n<h3>Benefits of Using Application Roles<\/h3>\n<ul>\n<li><strong>Security<\/strong>: Application roles enforce security policies for applications accessing the database.<\/li>\n<li><strong>Granular Control<\/strong>: Specific permissions can be granted to the application role, ensuring the application has only the access it needs.<\/li>\n<li><strong>Simplified Management<\/strong>: Application roles help manage permissions centrally for applications, reducing the complexity of managing multiple user accounts.<\/li>\n<\/ul>\n<h3>Best Practices<\/h3>\n<ul>\n<li><strong>Strong Passwords<\/strong>: Always use strong, complex passwords for application roles.<\/li>\n<li><strong>Least Privilege<\/strong>: Grant only the necessary permissions to the application role to follow the principle of least privilege.<\/li>\n<li><strong>Regular Audits<\/strong>: Regularly audit the use of application roles and their permissions to ensure they meet current security requirements.<\/li>\n<\/ul>\n<h3>Conclusion<\/h3>\n<p>By following these steps and best practices, you can effectively implement and use application roles in SQL Server to enhance the security and manageability of your database applications. Application roles ensure that the application has only the necessary permissions, reducing the risk of unauthorized access, and providing a consistent access control mechanism that is independent of individual users. Implementing application roles is a best practice for applications that need to interact with SQL Server securely and efficiently, ensuring that permissions are handled in a centralized and controlled manner.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[116,29,144,21],"tags":[195,196,199,200,197,201,131,198],"class_list":["post-657","post","type-post","status-publish","format-standard","hentry","category-connectivity","category-security","category-sql-auditing","category-tutorial","tag-application-roles","tag-database-security","tag-sp_setapprole","tag-sp_unsetapprole","tag-sql-permissions","tag-sql-role-management","tag-sql-server","tag-sql-server-roles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Application Role: Implementing Application Roles with SQL Server - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.\" \/>\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.sqltabletalk.com\/?p=657\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Application Role: Implementing Application Roles with SQL Server - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=657\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-16T12:55:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-16T12:55:31+00:00\" \/>\n<meta name=\"author\" content=\"Yvonne Vanslageren\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yvonne Vanslageren\" \/>\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.sqltabletalk.com\/?p=657#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=657\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"The Application Role: Implementing Application Roles with SQL Server\",\"datePublished\":\"2024-07-16T12:55:30+00:00\",\"dateModified\":\"2024-07-16T12:55:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=657\"},\"wordCount\":621,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"Application Roles\",\"Database Security\",\"sp_setapprole\",\"sp_unsetapprole\",\"SQL Permissions\",\"SQL Role Management\",\"SQL Server\",\"SQL Server Roles\"],\"articleSection\":[\"Connectivity\",\"Security\",\"SQL Auditing\",\"Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=657#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=657\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=657\",\"name\":\"The Application Role: Implementing Application Roles with SQL Server - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-07-16T12:55:30+00:00\",\"dateModified\":\"2024-07-16T12:55:31+00:00\",\"description\":\"A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=657#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=657\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=657#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Application Role: Implementing Application Roles with SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\",\"name\":\"Yvonne Vanslageren\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"caption\":\"Yvonne Vanslageren\"},\"url\":\"https:\/\/www.sqltabletalk.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Application Role: Implementing Application Roles with SQL Server - SQL Table Talk","description":"A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.","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.sqltabletalk.com\/?p=657","og_locale":"en_US","og_type":"article","og_title":"The Application Role: Implementing Application Roles with SQL Server - SQL Table Talk","og_description":"A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.","og_url":"https:\/\/www.sqltabletalk.com\/?p=657","og_site_name":"SQL Table Talk","article_published_time":"2024-07-16T12:55:30+00:00","article_modified_time":"2024-07-16T12:55:31+00:00","author":"Yvonne Vanslageren","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yvonne Vanslageren","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=657#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=657"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"The Application Role: Implementing Application Roles with SQL Server","datePublished":"2024-07-16T12:55:30+00:00","dateModified":"2024-07-16T12:55:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=657"},"wordCount":621,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["Application Roles","Database Security","sp_setapprole","sp_unsetapprole","SQL Permissions","SQL Role Management","SQL Server","SQL Server Roles"],"articleSection":["Connectivity","Security","SQL Auditing","Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=657#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=657","url":"https:\/\/www.sqltabletalk.com\/?p=657","name":"The Application Role: Implementing Application Roles with SQL Server - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-07-16T12:55:30+00:00","dateModified":"2024-07-16T12:55:31+00:00","description":"A straightforward guide to implementing application roles in SQL Server, focusing on enhancing security and managing database permissions for applications. This guide covers the creation, activation, and management of application roles, ensuring applications have the necessary access while minimizing the risk of unauthorized actions. Learn about key concepts such as role activation, permission assignment, and reverting security contexts. Follow best practices to effectively use application roles and improve the overall security and manageability of your SQL Server databases.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=657#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=657"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=657#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"The Application Role: Implementing Application Roles with SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"]},{"@type":"Person","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082","name":"Yvonne Vanslageren","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","caption":"Yvonne Vanslageren"},"url":"https:\/\/www.sqltabletalk.com\/?author=2"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=657"}],"version-history":[{"count":2,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/657\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/657\/revisions\/663"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}