{"id":707,"date":"2014-03-26T11:43:44","date_gmt":"2014-03-26T15:43:44","guid":{"rendered":"http:\/\/binary-world.com\/blogs\/?p=707"},"modified":"2014-03-26T12:43:24","modified_gmt":"2014-03-26T16:43:24","slug":"how-to-script-user-object-permissions-sql-server-2000-2005-2008","status":"publish","type":"post","link":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/","title":{"rendered":"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user"},"content":{"rendered":"<p>Recently I had to work on <strong>database migration project from SQL 2000 to SQL 2008<\/strong> and one of the challenges you face is scripting correct permissions to new database. There is no way to script user permissions in right way at the object level using SSMS. So I decided to write my own script.<\/p>\n<p><strong>Here is the script to script user permissions in sql server 2000 \/ 2005 \/2008<\/strong><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: []; html-script: false\">\/*\r\nCreated by Nayan Patel ( BinaryWorld.net )\r\nDescription: \r\n\tThis procedure will generare script for all object level permission for single user \r\n\tor all user of current database where this script is running. It will not script column \r\n\tlevel permissions so if you have any of those defined somewhere then do that manually.\r\n\r\nUsage: \r\n- Create this script in the database which has all the users you want to script. \r\n- You may pass user name optionally to this script to return all permissions for specific user. \r\n- Leave username parameter blank if you want to retuen all users and permissions\r\n\r\nExample:\r\n\texec usp_ScriptPermissions\r\n\texec usp_ScriptPermissions &#039;test&#039;\r\n\r\n*\/\r\ncreate proc usp_ScriptPermissions\r\n\t@username sysname=&#039;&#039;\r\nas\r\n\r\nselect \r\n UserName=a.name\r\n,SchemaName=d.name\r\n,ObjectName=c.name \r\n,a.IsLogin\r\n,GRANTED =\r\n\tcase b.actadd \r\n\twhen 1 then &#039;SELECT&#039; \r\n\twhen 2 then &#039;UPDATE&#039; \r\n\twhen 3 then &#039;SELECT,UPDATE&#039; \r\n\twhen 4 then &#039;REFERENCES&#039; \r\n\twhen 5 then &#039;SELECT, REFERENCES&#039; \r\n\twhen 6 then &#039;UPDATE,REFERENCES&#039; \r\n\twhen 7 then &#039;SELECT,UPDATE,REFERENCES&#039; \r\n\twhen 8 then &#039;INSERT&#039; \r\n\twhen 9 then &#039;SELECT,INSERT&#039; \r\n\twhen 10 then &#039;UPDATE,INSERT&#039; \r\n\twhen 11 then &#039;SELECT,UPDATE,INSERT&#039; \r\n\twhen 12 then &#039;REFERENCES,INSERT&#039; \r\n\twhen 13 then &#039;SELECT,REFERENCES,INSERT&#039; \r\n\twhen 14 then &#039;UPDATE,REFERENCES,INSERT&#039; \r\n\twhen 15 then &#039;SELECT,UPDATE,REFERENCES,INSERT&#039; \r\n\twhen 16 then &#039;DELETE&#039; \r\n\twhen 17 then &#039;SELECT,DELETE&#039; \r\n\twhen 18 then &#039;UPDATE,DELETE&#039; \r\n\twhen 19 then &#039;SELECT,UPDATE,DELETE&#039; \r\n\twhen 20 then &#039;REFERENCES,DELETE&#039; \r\n\twhen 21 then &#039;SELECT,REFERENCES,DELETE&#039; \r\n\twhen 22 then &#039;UPDATE,REFERENCES,DELETE&#039; \r\n\twhen 23 then &#039;SELECT,UPDATE,REFERENCES,DELETE&#039; \r\n\twhen 24 then &#039;INSERT,DELETE&#039; \r\n\twhen 25 then &#039;SELECT,INSERT,DELETE&#039; \r\n\twhen 26 then &#039;UPDATE,INSERT,DELETE&#039; \r\n\twhen 27 then &#039;SELECT,UPDATE,INSERT,DELETE&#039; \r\n\twhen 28 then &#039;REFERENCES,INSERT,DELETE&#039; \r\n\twhen 29 then &#039;SELECT,REFERENCES,INSERT,DELETE&#039; \r\n\twhen 30 then &#039;REFERENCES,INSERT,DELETE&#039; \r\n\twhen 31 then &#039;SELECT,UPDATE,REFERENCES,INSERT,DELETE&#039; \r\n\twhen 32 then &#039;EXECUTE&#039; else cast(b.actadd as varchar(10)) end \r\n, DENIED=\r\n\tcase b.actmod \r\n\twhen 1 then &#039;SELECT&#039; \r\n\twhen 2 then &#039;UPDATE&#039; \r\n\twhen 3 then &#039;SELECT,UPDATE&#039; \r\n\twhen 4 then &#039;REFERENCES&#039; \r\n\twhen 5 then &#039;SELECT, REFERENCES&#039; \r\n\twhen 6 then &#039;UPDATE,REFERENCES&#039; \r\n\twhen 7 then &#039;SELECT,UPDATE,REFERENCES&#039; \r\n\twhen 8 then &#039;INSERT&#039; \r\n\twhen 9 then &#039;SELECT,INSERT&#039; \r\n\twhen 10 then &#039;UPDATE,INSERT&#039; \r\n\twhen 11 then &#039;SELECT,UPDATE,INSERT&#039; \r\n\twhen 12 then &#039;REFERENCES,INSERT&#039; \r\n\twhen 13 then &#039;SELECT,REFERENCES,INSERT&#039; \r\n\twhen 14 then &#039;UPDATE,REFERENCES,INSERT&#039; \r\n\twhen 15 then &#039;SELECT,UPDATE,REFERENCES,INSERT&#039; \r\n\twhen 16 then &#039;DELETE&#039; \r\n\twhen 17 then &#039;SELECT,DELETE&#039; \r\n\twhen 18 then &#039;UPDATE,DELETE&#039; \r\n\twhen 19 then &#039;SELECT,UPDATE,DELETE&#039; \r\n\twhen 20 then &#039;REFERENCES,DELETE&#039; \r\n\twhen 21 then &#039;SELECT,REFERENCES,DELETE&#039; \r\n\twhen 22 then &#039;UPDATE,REFERENCES,DELETE&#039; \r\n\twhen 23 then &#039;SELECT,UPDATE,REFERENCES,DELETE&#039; \r\n\twhen 24 then &#039;INSERT,DELETE&#039; \r\n\twhen 25 then &#039;SELECT,INSERT,DELETE&#039; \r\n\twhen 26 then &#039;UPDATE,INSERT,DELETE&#039; \r\n\twhen 27 then &#039;SELECT,UPDATE,INSERT,DELETE&#039; \r\n\twhen 28 then &#039;REFERENCES,INSERT,DELETE&#039; \r\n\twhen 29 then &#039;SELECT,REFERENCES,INSERT,DELETE&#039; \r\n\twhen 30 then &#039;REFERENCES,INSERT,DELETE&#039; \r\n\twhen 31 then &#039;SELECT,UPDATE,REFERENCES,INSERT,DELETE&#039; \r\n\twhen 32 then &#039;EXECUTE&#039; else cast(b.actmod as varchar(10))  end \r\n\r\n,ObjectType=CASE c.xtype \r\n\tWHEN &#039;U&#039;  THEN &#039;Table&#039;\r\n\tWHEN &#039;C&#039;  THEN &#039;CHECK constraint&#039; \r\n\tWHEN &#039;D&#039;  THEN &#039;DEFAULT constraint&#039;\r\n\tWHEN &#039;F&#039;  THEN &#039;FOREIGN KEY constraint&#039; \r\n\tWHEN &#039;FN&#039; THEN &#039;Scalar function&#039;\r\n\tWHEN &#039;IT&#039; THEN &#039;Internal table&#039;\r\n\tWHEN &#039;P&#039;  THEN &#039;Stored procedure&#039; \r\n\tWHEN &#039;PK&#039; THEN &#039;PRIMARY KEY&#039;\r\n\tWHEN &#039;S&#039;  THEN &#039;System table&#039;\r\n\tWHEN &#039;TR&#039; THEN &#039;Trigger&#039;\r\n\tWHEN &#039;UQ&#039; THEN &#039;UNIQUE constraint&#039;\r\n\tWHEN &#039;V&#039;  THEN &#039;View&#039; \r\n\tWHEN &#039;X&#039;  THEN &#039;Extended stored procedure&#039;\r\n\tELSE &#039;Unknown type&#039; End\r\n\r\ninto #tmp\r\nfrom dbo.sysusers a \r\n,dbo.syspermissions b\r\n,dbo.sysobjects c \r\n,dbo.sysusers d\r\nwhere a.uid = b.grantee \r\n\tand b.[id] = c.[id] \r\n\tand c.uid = d.uid\r\n\tand b.grantee &lt;&gt; 0 \r\n\tand (a.name=@username or isnull(@username,&#039;&#039;)=&#039;&#039;)\r\norder by a.name,c.name \r\n\r\n--SELECT  sysusers.name AS OwnerName, sysobjects.name\r\n--FROM sysobjects\r\n--INNER JOIN sysusers ON sysobjects.uid = sysusers.uid\r\n\r\ndeclare @go varchar(20)\r\nset @go=CHAR(13) + CHAR(10) + &#039;GO&#039; + CHAR(13) + CHAR(10)\r\n--set @go=&#039;GO&#039;\r\n\r\nSELECT * INTO #tmp2 FROM (\r\n\/*GRANTED PERMISSIONS*\/\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;GRANT_SELECT&#039;, SCRIPT=&#039;GRANT SELECT ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE GRANTED LIKE &#039;%SELECT%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;GRANT_UPDATE&#039;, SCRIPT=&#039;GRANT UPDATE ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE GRANTED LIKE &#039;%UPDATE%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;GRANT_DELETE&#039;, SCRIPT=&#039;GRANT INSERT ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE GRANTED LIKE &#039;%INSERT%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;GRANT_INSERT&#039;, SCRIPT=&#039;GRANT DELETE ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE GRANTED LIKE &#039;%DELETE%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;GRANT_EXECUTE&#039;, SCRIPT=&#039;GRANT EXECUTE ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE GRANTED LIKE &#039;%EXECUTE%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;GRANT_REFERENCES&#039;, SCRIPT=&#039;GRANT REFERENCES ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE GRANTED LIKE &#039;%REFERENCES%&#039;\r\nUNION ALL\r\n\/*DENIED PERMISSIONS*\/\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;DENY_SELECT&#039;, SCRIPT=&#039;DENY SELECT ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE DENIED LIKE &#039;%SELECT%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;DENY_UPDATE&#039;, SCRIPT=&#039;DENY UPDATE ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE DENIED LIKE &#039;%UPDATE%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;DENY_DELETE&#039;, SCRIPT=&#039;DENY INSERT ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE DENIED LIKE &#039;%INSERT%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;DENY_INSERT&#039;, SCRIPT=&#039;DENY DELETE ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE DENIED LIKE &#039;%DELETE%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;DENY_EXECUTE&#039;, SCRIPT=&#039;DENY EXECUTE ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE DENIED LIKE &#039;%EXECUTE%&#039;\r\nUNION ALL\r\nselect UserName,SchemaName,ObjectName,ObjectType,SCRIPT_TYPE=&#039;DENY_REFERENCES&#039;, SCRIPT=&#039;DENY REFERENCES ON [&#039;+ SchemaName +&#039;].[&#039;+ ObjectName +&#039;] TO [&#039;+ UserName +&#039;]&#039; + @go FROM #tmp WHERE DENIED LIKE &#039;%REFERENCES%&#039;\r\n) a\r\n\r\nSELECT * FROM #tmp2\r\nselect SCRIPT FROM #tmp2 -- Enable result to Text and copy it Grid view doesnt show new lines\r\n\r\ngo\r\n\r\nexec usp_ScriptPermissions<\/pre>\n<p><b>Result <\/b><br \/>\n<a href=\"\/blogs\/wp-content\/uploads\/2014\/03\/script-database-user-permissions-sql-server-2000-2005-2008.png\"><img decoding=\"async\" src=\"\/blogs\/wp-content\/uploads\/2014\/03\/script-database-user-permissions-sql-server-2000-2005-2008.png\" alt=\"script-database-user-permissions-sql-server-2000-2005-2008\"  class=\"alignnone\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I had to work on database migration project from SQL 2000 to SQL 2008 and one of the challenges you face is scripting correct permissions to new database. There is no way to script user permissions in right way &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/\"> <span class=\"screen-reader-text\">How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":606,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,35],"tags":[116,158],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user - BinaryWorld Blog<\/title>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user - BinaryWorld Blog\" \/>\r\n<meta property=\"og:description\" content=\"Recently I had to work on database migration project from SQL 2000 to SQL 2008 and one of the challenges you face is scripting correct permissions to new database. There is no way to script user permissions in right way &hellip; How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user Read More &raquo;\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/\" \/>\r\n<meta property=\"og:site_name\" content=\"BinaryWorld Blog\" \/>\r\n<meta property=\"article:published_time\" content=\"2014-03-26T15:43:44+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2014-03-26T16:43:24+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"150\" \/>\r\n\t<meta property=\"og:image:height\" content=\"150\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Binary World\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Binary World\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/\",\"url\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/\",\"name\":\"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user - BinaryWorld Blog\",\"isPartOf\":{\"@id\":\"https:\/\/binaryworld.net\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg\",\"datePublished\":\"2014-03-26T15:43:44+00:00\",\"dateModified\":\"2014-03-26T16:43:24+00:00\",\"author\":{\"@id\":\"https:\/\/binaryworld.net\/blogs\/#\/schema\/person\/77cf0a9a512dd22bff93c6a1b6374fe0\"},\"breadcrumb\":{\"@id\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#primaryimage\",\"url\":\"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg\",\"contentUrl\":\"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg\",\"width\":150,\"height\":150,\"caption\":\"T SQL Date format convert function\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/binaryworld.net\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/binaryworld.net\/blogs\/#website\",\"url\":\"https:\/\/binaryworld.net\/blogs\/\",\"name\":\"BinaryWorld Blog\",\"description\":\"Tips and Tutorials for Microsoft SQL Server, SSIS, SSAS, Business Intelligence, C#, .net\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/binaryworld.net\/blogs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/binaryworld.net\/blogs\/#\/schema\/person\/77cf0a9a512dd22bff93c6a1b6374fe0\",\"name\":\"Binary World\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/binaryworld.net\/blogs\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eaea47799daa577835eb53e64dfd3e13?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/eaea47799daa577835eb53e64dfd3e13?s=96&d=mm&r=g\",\"caption\":\"Binary World\"},\"description\":\"Binary World is a Software Development company located in Atlanta, USA (since 2007). Binary World specialized in Business Intelligence, mobile, cloud computing and .Net Application Development.\",\"url\":\"https:\/\/binaryworld.net\/blogs\/author\/admin\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user - BinaryWorld Blog","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:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/","og_locale":"en_US","og_type":"article","og_title":"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user - BinaryWorld Blog","og_description":"Recently I had to work on database migration project from SQL 2000 to SQL 2008 and one of the challenges you face is scripting correct permissions to new database. There is no way to script user permissions in right way &hellip; How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user Read More &raquo;","og_url":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/","og_site_name":"BinaryWorld Blog","article_published_time":"2014-03-26T15:43:44+00:00","article_modified_time":"2014-03-26T16:43:24+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg","type":"image\/jpeg"}],"author":"Binary World","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Binary World","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/","url":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/","name":"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user - BinaryWorld Blog","isPartOf":{"@id":"https:\/\/binaryworld.net\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#primaryimage"},"image":{"@id":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#primaryimage"},"thumbnailUrl":"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg","datePublished":"2014-03-26T15:43:44+00:00","dateModified":"2014-03-26T16:43:24+00:00","author":{"@id":"https:\/\/binaryworld.net\/blogs\/#\/schema\/person\/77cf0a9a512dd22bff93c6a1b6374fe0"},"breadcrumb":{"@id":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#primaryimage","url":"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg","contentUrl":"https:\/\/binaryworld.net\/blogs\/wp-content\/uploads\/2014\/02\/sql-server-logo-e1397590261883.jpg","width":150,"height":150,"caption":"T SQL Date format convert function"},{"@type":"BreadcrumbList","@id":"https:\/\/binaryworld.net\/blogs\/how-to-script-user-object-permissions-sql-server-2000-2005-2008\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/binaryworld.net\/blogs\/"},{"@type":"ListItem","position":2,"name":"How to Script user permissions for SQL Server 2000\/2005\/2008 for all or single user"}]},{"@type":"WebSite","@id":"https:\/\/binaryworld.net\/blogs\/#website","url":"https:\/\/binaryworld.net\/blogs\/","name":"BinaryWorld Blog","description":"Tips and Tutorials for Microsoft SQL Server, SSIS, SSAS, Business Intelligence, C#, .net","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/binaryworld.net\/blogs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/binaryworld.net\/blogs\/#\/schema\/person\/77cf0a9a512dd22bff93c6a1b6374fe0","name":"Binary World","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/binaryworld.net\/blogs\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/eaea47799daa577835eb53e64dfd3e13?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eaea47799daa577835eb53e64dfd3e13?s=96&d=mm&r=g","caption":"Binary World"},"description":"Binary World is a Software Development company located in Atlanta, USA (since 2007). Binary World specialized in Business Intelligence, mobile, cloud computing and .Net Application Development.","url":"https:\/\/binaryworld.net\/blogs\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/posts\/707"}],"collection":[{"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/comments?post=707"}],"version-history":[{"count":0,"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/posts\/707\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/media\/606"}],"wp:attachment":[{"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/media?parent=707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/categories?post=707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/binaryworld.net\/blogs\/wp-json\/wp\/v2\/tags?post=707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}