{"id":1835,"date":"2013-07-22T12:51:57","date_gmt":"2013-07-22T16:51:57","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/jonathan\/?p=1835"},"modified":"2017-04-13T14:41:54","modified_gmt":"2017-04-13T18:41:54","slug":"synchronize-availability-group-logins-and-jobs","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/","title":{"rendered":"Synchronize Availability Group Logins and Jobs"},"content":{"rendered":"<p>An important part of ensuring application functionality with Availability Groups is manually maintaining any uncontained objects across each of the replicas in the Availability Group. As more of our clients upgrade to SQL Server 2012 and implement Availability Groups, we\u2019ve had to face the challenges of maintaining uncontained objects across replicas multiple times and there hasn\u2019t been a good solution to the problem. No one solution is a perfect fit for every client, and one of the challenges is the difference in change control policies that might exist.&nbsp; Some environments might be agreeable to an SSIS package that runs nightly to copy all logins and jobs, where others require a script be generated to accomplish the same tasks.&nbsp; <\/p>\n<p>To solve this problem, we developed the <a href=\"https:\/\/www.sqlskills.com\/free-tools\/ssms-availability-group-add-in\/\">SQL Server 2012 Availability Group Add-in<\/a> for SQL Server 2012 Management Studio specifically targeted at enhancing the UIs for Availability Groups.&nbsp; The add-in creates an additional menu in Object Explorer for the Availability Group node for easy access.  <\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" title=\"SQL Server 2012 Availability Group Add in\" alt=\"SQL Server 2012 AG Add in Menu SQL Server 2012 Availability Group Add in\" src=\"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png\" width=\"501\" height=\"249\"><\/p>\n<p>By clicking on the menu item, the Availability Group Synchronization UI form will open allowing you to easily step through the configuration of the different objects to synchronize and how.&nbsp; Currently the add-in supports synchronizing: <\/p>\n<ul>\n<li>User-defined Server Roles\n<li>Server Logins and Permissions\n<li>SQL Server Agent Jobs<\/li>\n<\/ul>\n<p>The current output is a SQLCMD mode script in a new query window to allow an administrator to review all of the changes prior to changing SQL Server Management Studio to SQLCMD mode to execute the script.&nbsp; This requires an additional step, but also fulfills the requirements of many change control processes.&nbsp; We may evaluate based on feedback enabling the ability to automatically synchronize instead of generating a script in a future update to the add-in.<\/p>\n<p><a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2013\/07\/image.png\"><img decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2013\/07\/image_thumb.png\" width=\"582\" height=\"388\"><\/a><\/p>\n<p>This add-in is under continuous development to add additional objects to synchronize and additional reporting for configuration reviews across replicas. The latest build of the add-in can be downloaded from the <a href=\"https:\/\/www.sqlskills.com\/free-tools\/ssms-availability-group-add-in\/\">SQL Server 2012 Availability Group Add-in<\/a> page on our site.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An important part of ensuring application functionality with Availability Groups is manually maintaining any uncontained objects across each of the replicas in the Availability Group. As more of our clients upgrade to SQL Server 2012 and implement Availability Groups, we\u2019ve had to face the challenges of maintaining uncontained objects across replicas multiple times and there [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,39],"tags":[],"class_list":["post-1835","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-sql-server-2012"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Synchronize Availability Group Logins and Jobs - Jonathan Kehayias<\/title>\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.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Synchronize Availability Group Logins and Jobs - Jonathan Kehayias\" \/>\n<meta property=\"og:description\" content=\"An important part of ensuring application functionality with Availability Groups is manually maintaining any uncontained objects across each of the replicas in the Availability Group. As more of our clients upgrade to SQL Server 2012 and implement Availability Groups, we\u2019ve had to face the challenges of maintaining uncontained objects across replicas multiple times and there [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/\" \/>\n<meta property=\"og:site_name\" content=\"Jonathan Kehayias\" \/>\n<meta property=\"article:published_time\" content=\"2013-07-22T16:51:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-13T18:41:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png\" \/>\n<meta name=\"author\" content=\"Jonathan Kehayias\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jonathan Kehayias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/\"},\"author\":{\"name\":\"Jonathan Kehayias\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"headline\":\"Synchronize Availability Group Logins and Jobs\",\"datePublished\":\"2013-07-22T16:51:57+00:00\",\"dateModified\":\"2017-04-13T18:41:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/\"},\"wordCount\":336,\"commentCount\":42,\"image\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/sql-server-2012-ag-add-in-menu.png\",\"articleSection\":[\"Availability Groups\",\"SQL Server 2012\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/\",\"name\":\"Synchronize Availability Group Logins and Jobs - Jonathan Kehayias\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/sql-server-2012-ag-add-in-menu.png\",\"datePublished\":\"2013-07-22T16:51:57+00:00\",\"dateModified\":\"2017-04-13T18:41:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/sql-server-2012-ag-add-in-menu.png\",\"contentUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/wp-content\\\/uploads\\\/2013\\\/07\\\/sql-server-2012-ag-add-in-menu.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/synchronize-availability-group-logins-and-jobs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Availability Groups\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/category\\\/availability-groups\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Synchronize Availability Group Logins and Jobs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\",\"name\":\"Jonathan Kehayias - The Rambling DBA\",\"description\":\"The Rambling DBA\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\",\"name\":\"Jonathan Kehayias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"caption\":\"Jonathan Kehayias\"},\"sameAs\":[\"http:\\\/\\\/3.209.169.194\\\/blogs\\\/jonathan\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Synchronize Availability Group Logins and Jobs - Jonathan Kehayias","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.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/","og_locale":"en_US","og_type":"article","og_title":"Synchronize Availability Group Logins and Jobs - Jonathan Kehayias","og_description":"An important part of ensuring application functionality with Availability Groups is manually maintaining any uncontained objects across each of the replicas in the Availability Group. As more of our clients upgrade to SQL Server 2012 and implement Availability Groups, we\u2019ve had to face the challenges of maintaining uncontained objects across replicas multiple times and there [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/","og_site_name":"Jonathan Kehayias","article_published_time":"2013-07-22T16:51:57+00:00","article_modified_time":"2017-04-13T18:41:54+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png","type":"","width":"","height":""}],"author":"Jonathan Kehayias","twitter_misc":{"Written by":"Jonathan Kehayias","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#article","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/"},"author":{"name":"Jonathan Kehayias","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"headline":"Synchronize Availability Group Logins and Jobs","datePublished":"2013-07-22T16:51:57+00:00","dateModified":"2017-04-13T18:41:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/"},"wordCount":336,"commentCount":42,"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png","articleSection":["Availability Groups","SQL Server 2012"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/","name":"Synchronize Availability Group Logins and Jobs - Jonathan Kehayias","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png","datePublished":"2013-07-22T16:51:57+00:00","dateModified":"2017-04-13T18:41:54+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#primaryimage","url":"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png","contentUrl":"https:\/\/www.sqlskills.com\/wp-content\/uploads\/2013\/07\/sql-server-2012-ag-add-in-menu.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/synchronize-availability-group-logins-and-jobs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/"},{"@type":"ListItem","position":2,"name":"Availability Groups","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/category\/availability-groups\/"},{"@type":"ListItem","position":3,"name":"Synchronize Availability Group Logins and Jobs"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/","name":"Jonathan Kehayias - The Rambling DBA","description":"The Rambling DBA","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c","name":"Jonathan Kehayias","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","caption":"Jonathan Kehayias"},"sameAs":["http:\/\/3.209.169.194\/blogs\/jonathan"]}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/1835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/comments?post=1835"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/1835\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/media?parent=1835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/categories?post=1835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/tags?post=1835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}