{"id":221,"date":"2024-01-23T08:55:00","date_gmt":"2024-01-23T13:55:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=221"},"modified":"2024-01-21T00:10:25","modified_gmt":"2024-01-21T05:10:25","slug":"understanding-the-implications-of-the-trustworthy-database-setting-in-sql-server","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=221","title":{"rendered":"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server"},"content":{"rendered":"<h2><strong>Introduction<\/strong><\/h2>\n<p>As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the <code>TRUSTWORTHY<\/code> database setting. The <code>TRUSTWORTHY<\/code> database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use <code>WITH EXECUTE AS<\/code>, as well as CLR (Common Language Runtime) assemblies marked as <code>EXTERNAL_ACCESS<\/code> or <code>UNSAFE<\/code>.<\/p>\n<h3>What Does TRUSTWORTHY Do?<\/h3>\n<p>When the <code>TRUSTWORTHY<\/code> setting is enabled (set to <code>ON<\/code>) for a database, it allows SQL Server to trust the contents within that database, especially in terms of authentication and authorization for certain types of code execution:<\/p>\n<ol>\n<li><strong>Modules Using <code>WITH EXECUTE AS<\/code><\/strong>: This setting impacts the behavior of T-SQL modules (like stored procedures and functions) that use the <code>WITH EXECUTE AS<\/code> clause. When <code>TRUSTWORTHY<\/code> is <code>ON<\/code>, these modules can execute under the context of a specified user, allowing the code to adopt permissions associated with that user. This is particularly relevant for cross-database access.<\/li>\n<li><strong>CLR Assemblies<\/strong>: For CLR (Common Language Runtime) integrations, <code>TRUSTWORTHY<\/code> enables assemblies marked as <code>EXTERNAL_ACCESS<\/code> or <code>UNSAFE<\/code> to be executed. These CLR assemblies, when running under a database with <code>TRUSTWORTHY ON<\/code>, can access external system resources or perform actions that are otherwise restricted under normal security contexts.<\/li>\n<\/ol>\n<h3>The TRUSTWORTHY Setting in Action<\/h3>\n<p>To grasp the implications of enabling <code>TRUSTWORTHY<\/code>, let&#8217;s consider a practical scenario with a database named <code>TrustyDB<\/code>. In this database, we have two logins: Sam and NoPerms. Sam is associated with a user named <code>TrustyUser<\/code>, who has <code>database_owner<\/code> permissions in <code>TrustyDB<\/code>.<\/p>\n<p>Attempting to use <code>TrustyUser<\/code> to create and execute a stored procedure to add Sam to the sysadmin role initially fails due to insufficient permissions. The error messages clearly state the inability to execute as the database principal and to alter the server role &#8216;sysadmin&#8217;.<\/p>\n<p>However, altering <code>TrustyDB<\/code> to set <code>TRUSTWORTHY ON<\/code> changes the game:<\/p>\n<pre><code>\nALTER DATABASE TrustyDB SET TRUSTWORTHY ON\nGO\nEXECUTE AS USER = 'TrustyUser';\nGO\nDECLARE @SQL NVARCHAR(MAX)\nSET @SQL = N'\nEXECUTE(''\nCREATE PROCEDURE GhostProc\nWITH EXECUTE AS OWNER\nAS\nBEGIN\nALTER SERVER ROLE sysadmin ADD MEMBER Sam\nEND'');\nEXECUTE GhostProc; DROP PROCEDURE GhostProc;'\nEXECUTE(@SQL)\n<\/code><\/pre>\n<p>This time, the operation is successful, and Sam is added to the sysadmin list. This example demonstrates the power and risks associated with the <code>TRUSTWORTHY<\/code> setting.<\/p>\n<h3>Caution and Best Practices<\/h3>\n<p>While <code>TRUSTWORTHY<\/code> can be a useful tool in SQL Server, its activation must be handled with utmost caution due to the inherent risks it poses:<\/p>\n<ul>\n<li><strong>Privilege Escalation<\/strong>: When a database is set to <code>TRUSTWORTHY ON<\/code>, it can potentially allow SQL code, including CLR assemblies, to execute under the security context of the database owner. This can lead to unintentional privilege escalation, where the code can gain higher privileges than intended. For example, a user with limited database permissions might execute code that can perform actions at the database owner level, potentially leading to unauthorized system modifications or data exposure.<\/li>\n<li><strong>Security Exploits<\/strong>: Malicious code within the database can leverage the <code>TRUSTWORTHY<\/code> setting to perform actions that are typically restricted. This might include accessing system-level resources, modifying data, or interacting with other databases in ways that compromise security and integrity.<\/li>\n<li><strong>Cross-Database Access Issues<\/strong>: A <code>TRUSTWORTHY<\/code> database can potentially access resources in other databases on the same SQL Server instance, leading to unauthorized data access or manipulation. This is particularly concerning in environments where multiple databases with different security levels are hosted on the same server.<\/li>\n<li><strong>Bypassing Security Mechanisms<\/strong>: The <code>TRUSTWORTHY<\/code> setting can be used to circumvent certain security measures like module signing or the use of certificates. These security mechanisms are designed to provide controlled and auditable elevation of privileges, but with <code>TRUSTWORTHY<\/code> enabled, these safeguards can be bypassed.<\/li>\n<\/ul>\n<p>To mitigate these risks, consider the following strategies:<\/p>\n<ul>\n<li><strong>Sparingly Use TRUSTWORTHY<\/strong>: Enable the <code>TRUSTWORTHY<\/code> setting only when it is absolutely necessary and there are no viable alternatives. Evaluate the specific requirements of each scenario to determine if <code>TRUSTWORTHY<\/code> is truly needed.<\/li>\n<li><strong>Implement Strong Access Controls<\/strong>: Ensure that only trusted and authorized users have the ability to modify database content. Use role-based access control and the principle of least privilege to limit the potential impact of a <code>TRUSTWORTHY<\/code> database.<\/li>\n<li><strong>Consider Alternatives<\/strong>: Before resorting to <code>TRUSTWORTHY<\/code>, explore other options like code signing. Code signing provides a more secure and controlled way of managing permissions, where a digital signature is used to verify the integrity and origin of the code.<\/li>\n<li><strong>Regular Audits and Reviews<\/strong>: Conduct regular security audits and reviews of databases where <code>TRUSTWORTHY<\/code> is enabled. Monitoring for unusual activities or changes can help in early detection of security issues.<\/li>\n<\/ul>\n<p>While <code>TRUSTWORTHY<\/code> can be a powerful tool for certain functionalities in SQL Server, it brings with it significant security considerations. Balancing its use with these risks is essential for maintaining a secure and reliable database environment.<\/p>\n<h3>The Persistence of TRUSTWORTHY<\/h3>\n<p>An important aspect to note is that <code>TRUSTWORTHY<\/code> is not a persistent setting. When a database with <code>TRUSTWORTHY<\/code> enabled is backed up and restored, the setting reverts to disabled. This design is intentional to prevent security breaches, particularly in scenarios involving database detachment and reattachment.<\/p>\n<h2>Conclusion<\/h2>\n<p>In conclusion, while the <code>TRUSTWORTHY<\/code> setting in SQL Server can be instrumental for certain functionalities, it&#8217;s imperative to balance its use with the potential security risks it introduces. Understanding its behavior, particularly in the context of database backups and restores, is essential. Database administrators should exercise caution, adhere to best practices, and regularly review their security strategies to ensure the secure and effective use of this setting.<\/p>\n<p>For a deeper dive into the <code>TRUSTWORTHY<\/code> setting and best practices for its use, refer to the <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/security\/trustworthy-database-property?view=sql-server-2017\">official Microsoft documentation<\/a> and <a href=\"https:\/\/support.microsoft.com\/en-us\/help\/2183687\/guidelines-for-using-the-trustworthy-database-setting-in-sql-server\">guidelines<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.<\/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":[35,82,29],"tags":[62,30,83],"class_list":["post-221","post","type-post","status-publish","format-standard","hentry","category-data-integrity","category-database-configuration","category-security","tag-audit","tag-security","tag-trustworthy-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.\" \/>\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=221\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=221\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-23T13:55:00+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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=221#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=221\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server\",\"datePublished\":\"2024-01-23T13:55:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=221\"},\"wordCount\":879,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"audit\",\"security\",\"trustworthy database\"],\"articleSection\":[\"Data Integrity\",\"Database Configuration\",\"Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=221#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=221\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=221\",\"name\":\"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-01-23T13:55:00+00:00\",\"description\":\"As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=221#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=221\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=221#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding the Implications of the TRUSTWORTHY Database Setting in 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":"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server - SQL Table Talk","description":"As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.","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=221","og_locale":"en_US","og_type":"article","og_title":"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server - SQL Table Talk","og_description":"As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.","og_url":"https:\/\/www.sqltabletalk.com\/?p=221","og_site_name":"SQL Table Talk","article_published_time":"2024-01-23T13:55:00+00:00","author":"Yvonne Vanslageren","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yvonne Vanslageren","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=221#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=221"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server","datePublished":"2024-01-23T13:55:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=221"},"wordCount":879,"commentCount":3,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["audit","security","trustworthy database"],"articleSection":["Data Integrity","Database Configuration","Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=221#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=221","url":"https:\/\/www.sqltabletalk.com\/?p=221","name":"Understanding the Implications of the TRUSTWORTHY Database Setting in SQL Server - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-01-23T13:55:00+00:00","description":"As a SQL Server DBA, understanding the nuances of database settings is necessary for maintaining security and integrity. One such setting that often becomes a topic of discussion due to its significant impact on security is the TRUSTWORTHY database setting. The TRUSTWORTHY database setting in SQL Server is a configuration option that affects the security of certain database operations, particularly those involving code execution contexts. It plays a critical role in the security context of modules that use WITH EXECUTE AS, as well as CLR (Common Language Runtime) assemblies marked as EXTERNAL_ACCESS or UNSAFE.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=221#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=221"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=221#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Understanding the Implications of the TRUSTWORTHY Database Setting in 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\/221","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=221"}],"version-history":[{"count":2,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/221\/revisions"}],"predecessor-version":[{"id":274,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/221\/revisions\/274"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}