{"id":1127,"date":"2025-07-09T09:00:00","date_gmt":"2025-07-09T14:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=1127"},"modified":"2025-07-08T22:26:25","modified_gmt":"2025-07-09T03:26:25","slug":"sql-server-permissions-troubleshooting","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=1127","title":{"rendered":"Troubleshooting SQL Server Permissions"},"content":{"rendered":"<p>Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.<\/p>\n<h2>Checking effective permissions with sys.fn_my_permissions<\/h2>\n<p>Ever wonder what a user can really do? sys.fn_my_permissions reports the exact permissions SQL Server will honor at a given securable level. In the script below we grant rights at the database, schema, and object tiers to see how they combine:<\/p>\n<pre><code>-- Session 1: setup\nCREATE USER DemoUser1 WITHOUT LOGIN;\n\nCREATE SCHEMA Sales AUTHORIZATION dbo;\n\nCREATE TABLE Sales.Orders\n( OrderID INT PRIMARY KEY,\n  CustomerName NVARCHAR(100),\n  OrderTotal MONEY );\n\nCREATE PROCEDURE Sales.GetOrders AS\n    SELECT * FROM Sales.Orders;\nGO\n\nGRANT EXECUTE           TO DemoUser1;                 -- database level\nGRANT UPDATE  ON SCHEMA::Sales TO DemoUser1;          -- schema level\nGRANT SELECT  ON Sales.Orders TO DemoUser1;\nGO<\/code><\/pre>\n<pre><code>-- Session 2: diagnostics\nEXECUTE AS USER = 'DemoUser1';\nSELECT * \nFROM sys.fn_my_permissions(NULL, 'DATABASE');         -- database scope\nSELECT * \nFROM sys.fn_my_permissions('Sales.Orders', 'OBJECT'); -- object scope\nREVERT;<\/code><\/pre>\n<p>The function shows every permission SQL Server will apply to DemoUser1 at each level, making it the first tool to reach for when a user insists they should have access but something still fails.<\/p>\n<h2>Viewing explicit GRANT and DENY entries<\/h2>\n<p>When a user\u2019s access does not line up with expectations, start by listing the explicit entries in sys.database_permissions. Remember: a single DENY overrides any number of GRANTs.<\/p>\n<pre><code>CREATE USER DemoUser2 WITHOUT LOGIN;\n\nCREATE TABLE dbo.CustomerData\n( CustomerID INT,\n  Name       NVARCHAR(100) );\n\nGRANT SELECT ON dbo.CustomerData TO DemoUser2;\nDENY  INSERT ON dbo.CustomerData TO DemoUser2;<\/code><\/pre>\n<pre><code>SELECT  dp.name          AS PrincipalName,\n        o.name           AS ObjectName,\n        o.type_desc      AS ObjectType,\n        p.permission_name,\n        p.state_desc     AS PermissionState\nFROM    sys.database_permissions AS p\nJOIN    sys.database_principals  AS dp ON p.grantee_principal_id = dp.principal_id\nLEFT JOIN sys.objects            AS o  ON p.major_id = o.object_id\nWHERE   dp.name = 'DemoUser2';<\/code><\/pre>\n<p>You will see both the GRANT SELECT and the explicit DENY INSERT. If DemoUser2 tries an INSERT, the operation fails even though SELECT succeeds\u2014exactly the behaviour you would troubleshoot in production.<\/p>\n<h2>Tracing role-based inheritance<\/h2>\n<p>Roles simplify day-to-day administration but complicate diagnostics because permissions flow indirectly. The next script confirms role membership and then impersonates the user to prove that the inherited rights take effect.<\/p>\n<pre><code>CREATE USER DemoUser3  WITHOUT LOGIN;\nCREATE ROLE SalesReader;\n\nCREATE TABLE dbo.SalesData\n( SaleID INT PRIMARY KEY,\n  ProductName NVARCHAR(100),\n  Amount MONEY );\n\nGRANT SELECT ON dbo.SalesData TO SalesReader;\nALTER ROLE SalesReader ADD MEMBER DemoUser3;\nGO<\/code><\/pre>\n<pre><code>SELECT r.name AS RoleName, m.name AS MemberName\nFROM   sys.database_role_members rm\nJOIN   sys.database_principals r ON rm.role_principal_id  = r.principal_id\nJOIN   sys.database_principals m ON rm.member_principal_id = m.principal_id\nWHERE  m.name = 'DemoUser3';\n\nEXECUTE AS USER = 'DemoUser3';\nSELECT * FROM sys.fn_my_permissions('dbo.SalesData', 'OBJECT'); -- shows SELECT\nREVERT;<\/code><\/pre>\n<p>If a query works during impersonation, you know the missing permission is not the problem; look for other causes such as schema mismatches or explicit denies.<\/p>\n<h2>Server-level permissions that affect every database<\/h2>\n<p>Some rights\u2014VIEW ANY DATABASE, ALTER ANY LOGIN and so on\u2014live at the server scope. They do not appear in database views and can therefore be missed.<\/p>\n<pre><code>CREATE LOGIN DemoLogin1 WITH PASSWORD = 'StrongP@ssword123!';\nGRANT VIEW ANY DATABASE TO DemoLogin1;\nGO<\/code><\/pre>\n<pre><code>SELECT  sp.name, sp.type_desc,\n        p.permission_name, p.state_desc\nFROM    sys.server_permissions  AS p\nJOIN    sys.server_principals   AS sp ON p.grantee_principal_id = sp.principal_id\nWHERE   sp.name = 'DemoLogin1';<\/code><\/pre>\n<p>VIEW ANY DATABASE lets a login see all database names in metadata queries even if it cannot connect to them\u2014useful for monitoring accounts, surprising when overlooked.<\/p>\n<h2>When DENY counters a role\u2019s GRANT<\/h2>\n<p>To illustrate precedence rules, create a role that grants SELECT and then deny that same permission directly to the user. The role grant becomes irrelevant.<\/p>\n<pre><code>CREATE USER DemoUser5 WITHOUT LOGIN;\nCREATE ROLE DataReaders;\n\nCREATE TABLE dbo.FinancialData\n( RecordID INT,\n  Revenue  MONEY );\n\nGRANT SELECT ON dbo.FinancialData TO DataReaders;\nALTER ROLE DataReaders ADD MEMBER DemoUser5;\nDENY  SELECT ON dbo.FinancialData TO DemoUser5;\nGO<\/code><\/pre>\n<pre><code>EXECUTE AS USER = 'DemoUser5';\nSELECT * FROM dbo.FinancialData;   -- fails\nREVERT;<\/code><\/pre>\n<p>Whenever a user belongs to the right role yet still encounters an error, scan their explicit entries for a deny before assuming something is wrong with the role itself.<\/p>\n<h2>Ownership chaining and broken chains<\/h2>\n<p>Objects owned by the same principal form an ownership chain; permission is checked only at the top. Changing ownership mid-chain forces SQL Server to check every link.<\/p>\n<pre><code>CREATE USER DemoUser6 WITHOUT LOGIN;\nCREATE SCHEMA Sales2 AUTHORIZATION dbo;\n\nCREATE TABLE Sales2.Orders\n( OrderID INT,\n  CustomerName NVARCHAR(100) );\n\nCREATE PROCEDURE Sales2.GetOrders AS\n    SELECT * FROM Sales2.Orders;\nGO\n\nGRANT EXECUTE ON Sales2.GetOrders TO DemoUser6;\nGO\n\nEXECUTE AS USER = 'DemoUser6';\nEXEC   Sales2.GetOrders;          -- succeeds\nREVERT;\n\nCREATE USER AltOwner WITHOUT LOGIN;\nALTER AUTHORIZATION ON SCHEMA::Sales2 TO AltOwner;\nGO\n\nEXECUTE AS USER = 'DemoUser6';\nEXEC   Sales2.GetOrders;          -- now fails\nREVERT;\n\nSELECT  s.name   AS SchemaName,\n        dp.name  AS OwnerName\nFROM    sys.schemas            AS s\nJOIN    sys.database_principals dp ON s.principal_id = dp.principal_id\nWHERE   s.name = 'Sales2';<\/code><\/pre>\n<p>If a stored procedure loses access after a deployment, confirm whether its schema or an underlying object was reassigned to a different owner.<\/p>\n<h3>Closing remarks<\/h3>\n<p>These six demonstrations show the key influences on SQL Server\u2019s permission engine: direct grants and denies, role inheritance, server-level rights, and ownership chains. By pairing a concise setup with targeted diagnostic queries, you can reproduce\u2014and then solve\u2014most real-world access problems in minutes. Keep sys.fn_my_permissions, the catalog views for principals and permissions, and EXECUTE AS in your troubleshooting toolkit; they reveal exactly why the engine allows or blocks a given action.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.<\/p>\n","protected":false},"author":49,"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":[29],"tags":[586,584,592,588,590,587,589,30,591,197,381,585,467],"class_list":["post-1127","post","type-post","status-publish","format-standard","hentry","category-security","tag-database-security-2","tag-deny-vs-grant","tag-execute-as","tag-fn_my_permissions","tag-ownership-chaining","tag-permissions","tag-role-based-access","tag-security","tag-server-level-permissions","tag-sql-permissions","tag-sql-server-permissions","tag-sql-server-2","tag-troubleshooting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Troubleshooting SQL Server Permissions - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.\" \/>\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=1127\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Troubleshooting SQL Server Permissions - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=1127\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-09T14:00:00+00:00\" \/>\n<meta name=\"author\" content=\"Jon Russell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jon Russell\" \/>\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=1127#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1127\"},\"author\":{\"name\":\"Jon Russell\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/8f5916388cc3b793a960dea33ff1ed86\"},\"headline\":\"Troubleshooting SQL Server Permissions\",\"datePublished\":\"2025-07-09T14:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1127\"},\"wordCount\":546,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"database-security\",\"deny-vs-grant\",\"execute-as\",\"fn_my_permissions\",\"ownership-chaining\",\"permissions\",\"role-based-access\",\"security\",\"server-level-permissions\",\"SQL Permissions\",\"SQL Server Permissions\",\"sql-server\",\"Troubleshooting\"],\"articleSection\":[\"Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=1127#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1127\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=1127\",\"name\":\"Troubleshooting SQL Server Permissions - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2025-07-09T14:00:00+00:00\",\"description\":\"Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1127#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=1127\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=1127#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting SQL Server Permissions\"}]},{\"@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\/8f5916388cc3b793a960dea33ff1ed86\",\"name\":\"Jon Russell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f35049bc3903cae9c596247b2dfe95c0d9b003dd0c758b9690cc00544216aa7c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f35049bc3903cae9c596247b2dfe95c0d9b003dd0c758b9690cc00544216aa7c?s=96&d=mm&r=g\",\"caption\":\"Jon Russell\"},\"url\":\"https:\/\/www.sqltabletalk.com\/?author=49\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Troubleshooting SQL Server Permissions - SQL Table Talk","description":"Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.","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=1127","og_locale":"en_US","og_type":"article","og_title":"Troubleshooting SQL Server Permissions - SQL Table Talk","og_description":"Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.","og_url":"https:\/\/www.sqltabletalk.com\/?p=1127","og_site_name":"SQL Table Talk","article_published_time":"2025-07-09T14:00:00+00:00","author":"Jon Russell","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jon Russell","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=1127#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=1127"},"author":{"name":"Jon Russell","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/8f5916388cc3b793a960dea33ff1ed86"},"headline":"Troubleshooting SQL Server Permissions","datePublished":"2025-07-09T14:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=1127"},"wordCount":546,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["database-security","deny-vs-grant","execute-as","fn_my_permissions","ownership-chaining","permissions","role-based-access","security","server-level-permissions","SQL Permissions","SQL Server Permissions","sql-server","Troubleshooting"],"articleSection":["Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=1127#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=1127","url":"https:\/\/www.sqltabletalk.com\/?p=1127","name":"Troubleshooting SQL Server Permissions - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2025-07-09T14:00:00+00:00","description":"Understanding and troubleshooting SQL Server permissions can be challenging, especially when direct grants, role inheritance, ownership chains, and explicit denies all interact. The six scenarios that follow show how the engine decides who can do what, then demonstrate the diagnostic steps that reveal why it made that decision. Each section provides a setup script you can run in a dedicated test database, followed by a diagnostic query and a short explanation of the result.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=1127#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=1127"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=1127#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Troubleshooting SQL Server Permissions"}]},{"@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\/8f5916388cc3b793a960dea33ff1ed86","name":"Jon Russell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f35049bc3903cae9c596247b2dfe95c0d9b003dd0c758b9690cc00544216aa7c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f35049bc3903cae9c596247b2dfe95c0d9b003dd0c758b9690cc00544216aa7c?s=96&d=mm&r=g","caption":"Jon Russell"},"url":"https:\/\/www.sqltabletalk.com\/?author=49"}]}},"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\/1127","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\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1127"}],"version-history":[{"count":11,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/1127\/revisions"}],"predecessor-version":[{"id":1143,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/1127\/revisions\/1143"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}