<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server Policy-Based Management</title><link>http://blogs.msdn.com/b/sqlpbm/</link><description>This blog is dedicated to Policy-Based Management introduced in SQL Server 2008</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Why does a property show up in &gt; 1 facet? Why do some facets support CoC:Prevent, but others not?</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/13/why-does-a-property-show-up-in-gt-1-facet-why-do-some-facets-support-coc-prevent-but-others-not.aspx</link><pubDate>Fri, 13 Aug 2010 16:16:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10049901</guid><dc:creator>sqlpbm</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=10049901</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/13/why-does-a-property-show-up-in-gt-1-facet-why-do-some-facets-support-coc-prevent-but-others-not.aspx#comments</comments><description>&lt;p&gt;Last week, Shaun Stuart posted&amp;nbsp;some questions on his blog about PBM "&lt;a href="http://shaunjstuart.com/archive/2010/06/sql-2008-policy-based-management-strangeness-2/"&gt;strangeness&lt;/a&gt;".&amp;nbsp;&amp;nbsp; He was wondering why some properties like "AutoClose" show up in more than one facet, and then why some of those facets support "check on change : prevent" but others don't.&lt;/p&gt;
&lt;p&gt;I've reproduced my answer to Shawn, below ...&lt;/p&gt;
&lt;hr size="1" style="height: 1px;" /&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;A property can appear in &amp;gt; 1 facet by design. Facets are based around usage patterns, and so a property like AutoShink may show up in &amp;gt; 1 facet. To a rough approximation, you can think of facets as like views.&lt;/span&gt;&lt;/p&gt;
&lt;div style="text-align: left; background-color: transparent; color: #000000; overflow: hidden; text-decoration: none;"&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;The facet evaluation mode is the least restrictive (MIN) over all the facet properties. Suppose a facet F has three properties, P1, P2, and P3. Suppose that it is possible to rollback a transaction when you try to set P1 and P2, but the setter on P3 is non-transactional. Then, F cannot support the CheckOnChange:Prevent mode.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;There are a few underlying reasons that facets have different evaluation mode capabilities. In the discussion below, &amp;ldquo;CoC&amp;rdquo; means &amp;ldquo;check on change&amp;rdquo; and &amp;ldquo;CoS&amp;rdquo; means &amp;ldquo;check on schedule.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;Some property setters do not map to DDL statements that can be rolled back in a trigger. Any facet containing such a property will not support CoC:Prevent.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;Some property setters do not map to events supports by EVENT NOTIFICATION objects. Any facet containing such a property will not support CoC:Log (side note: use select * from sys.event_notification_event_types to see supported events).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;To see a list of Facets along with their supported evaluation modes, see &lt;/span&gt;&lt;a jquery1281715716273="9" rel="nofollow" href="http://blogs.msdn.com/b/sqlpbm/archive/2008/05/24/facets.aspx"&gt;&lt;span style="color: #666699;"&gt;http://blogs.msdn.com/b/sqlpbm/archive/2008/05/24/facets.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;All this said, I can see why a customer like you would be confused. I have added these design change requests (DCRs) for the next release.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;a) Show the supported facet evaluation modes in the &amp;ldquo;Object Explorer Details&amp;rdquo; page.&lt;br /&gt;b) Show the supported facet evaluation modes in the &amp;ldquo;General&amp;rdquo; tab page of the &amp;ldquo;Facet Dialog&amp;rdquo;&lt;br /&gt;c) Make the facets and their evaluation modes programmatically discoverable via SQLPS.&lt;br /&gt;d) Add the table from the PBM blog page above and add it to the books on line.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #666699;"&gt;Best regards,&lt;br /&gt;Clifford Dibble&lt;br /&gt;SQL PM&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10049901" width="1" height="1"&gt;</description></item><item><title>After renaming computer, "check on schedule" policies don't work.  How to fix ...</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/02/after-renaming-computer-quot-check-on-schedule-quot-policies-don-t-work-how-to-fix.aspx</link><pubDate>Mon, 02 Aug 2010 17:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10045033</guid><dc:creator>sqlpbm</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=10045033</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/02/after-renaming-computer-quot-check-on-schedule-quot-policies-don-t-work-how-to-fix.aspx#comments</comments><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;If you rename your computer, then "check on schedule policies" won't work because the old machine name is embedded in the SQL Agent jobs.&lt;/p&gt;
&lt;p&gt;To make this (and a lot of other stuff) work after a machine rename, execute the following procedure:&amp;nbsp; "&lt;a href="http://msdn.microsoft.com/en-us/library/ms143799.aspx"&gt;How to: Rename a Computer that Hosts a Stand-Alone Instance of SQL Server&lt;/a&gt;"&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Clifford Dibble&lt;br /&gt;SQL PM&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10045033" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/SQL+Server+Agent/">SQL Server Agent</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Check+On+Shcedule/">Check On Shcedule</category></item><item><title>Clarification around "Data and Log Files ..." and "Backup Files ..." policies</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/02/clarification-around-quot-data-and-log-files-quot-and-quot-backup-files-quot-policies.aspx</link><pubDate>Mon, 02 Aug 2010 17:45:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10045028</guid><dc:creator>sqlpbm</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=10045028</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/02/clarification-around-quot-data-and-log-files-quot-and-quot-backup-files-quot-policies.aspx#comments</comments><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We ship these two Best Practices policies&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb402876(v=SQL.100).aspx"&gt;Place Data and Log Files on Separate Drives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb402878(v=SQL.100).aspx"&gt;Backup Files Must Be on Separate Devices from the Database Files&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unfortunately, neither of those two policies can detect separate physical devices through Windows mount points.&amp;nbsp;&amp;nbsp; We will clarify the documentation on this and look to&amp;nbsp;get this working across mount points&amp;nbsp;in a future release.&lt;/p&gt;
&lt;p&gt;Cliff Dibble&lt;br /&gt;SQL PM&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10045028" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Best+Practice/">Best Practice</category></item><item><title>Clarification on the "Guest Permissions on User Databases" policy</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/02/clarification-on-the-quot-guest-permissions-on-user-databases-quot-policy.aspx</link><pubDate>Mon, 02 Aug 2010 17:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10045021</guid><dc:creator>sqlpbm</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=10045021</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2010/08/02/clarification-on-the-quot-guest-permissions-on-user-databases-quot-policy.aspx#comments</comments><description>&lt;p&gt;We ship a "Microsoft Best Practices: Security" policy called "&lt;a href="http://msdn.microsoft.com/en-us/library/bb402861(SQL.100).aspx" title="Guest Permissions in User Databases"&gt;Guest Permissions on User Databases&lt;/a&gt;".&amp;nbsp; Unfortunately, the wording in the UI and BOL is not clear about whether this can/should apply to &lt;strong&gt;msdb&lt;/strong&gt;.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Here is what is says today: &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;"You can do this by executing REVOKE CONNECT FROM GUEST" from within any database other than master or tempdb."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here is what it &lt;strong&gt;should be&lt;/strong&gt; (and &lt;strong&gt;will&lt;/strong&gt; be in the next major release): &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;"You can do this by executing REVOKE CONNECT FROM GUEST" from within any database other than master,&amp;nbsp;&lt;span style="background-color: #ffff00;"&gt;msdb&lt;/span&gt;,&amp;nbsp;or tempdb."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For more information on the "guest account in msdb" issue, see Buck Woody's recent post titled "&lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2010/08/02/don-t-mess-with-the-system-databases-in-sql-server-or-error-916.aspx" title="Don't mess with the system databases in SQL Server, or error 916"&gt;Don&amp;rsquo;t mess with the system databases in SQL Server, or Error: 916&lt;/a&gt;"&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Clifford Dibble&lt;br /&gt;SQL PM&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10045021" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Best+Practice/">Best Practice</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Security/">Security</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/msdb/">msdb</category></item><item><title>Generate the List of All Available Facets and Their Properties</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2009/04/20/generate-the-list-of-all-available-facets-and-their-properties.aspx</link><pubDate>Mon, 20 Apr 2009 20:40:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9557008</guid><dc:creator>sqlpbm</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=9557008</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2009/04/20/generate-the-list-of-all-available-facets-and-their-properties.aspx#comments</comments><description>&lt;p&gt;Our colleague Jens Suessmeyer in Germany has figured out how to generate the list of all facets and their properties. He has posted the &lt;a href="http://blogs.msdn.com/jenss/archive/2009/04/18/getting-a-list-of-all-facets-and-its-properties.aspx"&gt;list&lt;/a&gt; on his blog. Below is the code snippet from Jens:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt; (&lt;font color="#008080"&gt;FacetInfo&lt;/font&gt; info &lt;font color="#0000ff"&gt;in&lt;/font&gt; &lt;font color="#008080"&gt;PolicyStore&lt;/font&gt;.Facets)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#008080"&gt;Console&lt;/font&gt;.WriteLine(info.Name);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;foreach&lt;/font&gt; (System.Reflection.&lt;font color="#008080"&gt;PropertyInfo&lt;/font&gt; p &lt;font color="#0000ff"&gt;in&lt;/font&gt; info.FacetProperties)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#008080"&gt;Console&lt;/font&gt;.WriteLine(&amp;quot;\t&amp;quot; + p.Name);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/u&gt;&lt;/p&gt;  &lt;p&gt;About the Author:&lt;/p&gt;  &lt;p&gt;Hongfei Guo is a PM on the SQL Server Manageability team at Microsoft&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9557008" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Facets/">Facets</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/SQL+Server+2008/">SQL Server 2008</category></item><item><title>Policy Evaluation Modes</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx</link><pubDate>Tue, 14 Apr 2009 03:39:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9547636</guid><dc:creator>sqlpbm</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=9547636</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx#comments</comments><description>&lt;p&gt;I hosted a PBM break out session in Microsoft MVP Summit 2009 in March. One feedback I got is that the rules for what evaluation modes a policy support are obtuse. I thought that would be a good topic to cover in the blog. &lt;/p&gt;  &lt;p&gt;In PBM, users can specify the “Evaluation Mode” for a policy, as shown in the Policy Dialogue below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/PolicyEvaluationModes_F834/PolicyDialogue_4.jpg"&gt;&lt;img title="PolicyDialogue" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="445" alt="PolicyDialogue" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/PolicyEvaluationModes_F834/PolicyDialogue_thumb_1.jpg" width="757" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The Evaluation Mode defines the combination of 1) when the policy will be evaluated and 2) what the system will do in case of policy violation. The following evaluation modes are supported:&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="163"&gt;           &lt;p&gt;&lt;b&gt;Evaluation Mode&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="240"&gt;           &lt;p&gt;&lt;b&gt;When to Check&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="235"&gt;           &lt;p&gt;&lt;b&gt; Action upon Violation&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="163"&gt;           &lt;p&gt;&lt;b&gt;On Demand&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="240"&gt;           &lt;p&gt;On demand only&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="235"&gt;           &lt;p&gt; Users can choose to configure the&amp;#160; system to comply to the policy&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="163"&gt;           &lt;p&gt;&lt;b&gt;On Schedule&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="240"&gt;           &lt;p&gt;Periodically according to the specified schedule&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="235"&gt;           &lt;p&gt;log&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="163"&gt;           &lt;p&gt;&lt;b&gt;On Change – Log only&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="240"&gt;           &lt;p&gt;When there is a relevant (DDL) change to the DBMS&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="235"&gt;           &lt;p&gt;log&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="163"&gt;           &lt;p&gt;&lt;b&gt;On Change – Prevent&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="240"&gt;           &lt;p&gt;When there is a relevant (DDL) change to the DBMS&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="235"&gt;           &lt;p&gt;Roll back the transaction&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You may have noticed from the GUI that all policies support On Demand evaluation mode. Most policies support On Schedule evaluation mode. Among those, some policies support On Change – Log only. Again among those, some polices also support On Change – Prevent. As shown in the Venn diagram. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/PolicyEvaluationModes_F834/SupportedEvaluationModes_2.jpg"&gt;&lt;img title="SupportedEvaluationModes" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="258" alt="SupportedEvaluationModes" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/PolicyEvaluationModes_F834/SupportedEvaluationModes_thumb.jpg" width="378" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="4"&gt;On Schedule&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For 2008, we support On Schedule mode for all policies referring to facets on the Database Engine. There are two facets that are not in this category: ISurfaceAreaConfigurationForAnalysisServer is defined for the Analysis Services and ISurfaceAreaConfigurationForReportingServices is defined for the Reporting Services. We only support On Demand mode for policies defined on these two facets. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="4"&gt;On Change&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A policy supports On Change modes if and only if both of the following rules hold:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1) The facet referred to by the policy supports On Change modes&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2) If there are any target-set-filter conditions (see the Policy Dialogue Figure) specified in this policy, they are all Naming conditions (conditions in the form of &amp;lt;@name, [Operator], [value]&amp;gt;) and there is no server restriction condition. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;let’s look at the first rule first. The On Change evaluation modes are implemented using the DDL eventing mechanism of SQL Server. And the “roll back” action relies on transactional support of the corresponding DDL statement. The change of some facet properties does not trigger any event, for example, database size in the Database facet. And accordingly we don’t support On Change modes for such facets. For some facets, although there are always events for every facet property, there is no transactional support for the DDL statement. For such facets, On Change – Log Only mode is supported, but not On Change – Prevent. IDatabaseOption facet is such an example. You can use the following query to check out what evaluation modes a facet support:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;select * from msdb..syspolicy_management_facets&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The execution_mode column is a bit mask defined as follows:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;4 (100):&amp;#160; On Schedule&lt;/p&gt;    &lt;p&gt;2 (10):&amp;#160;&amp;#160;&amp;#160; On Change - Log Only&lt;/p&gt;    &lt;p&gt;1(1):&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; On change - Prevent&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The following query checks what events are monitored for a facet supporting On Change modes:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;select * from msdb..syspolicy_facet_events&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Next let’s look at the second rule. In a policy you can use conditions to filter the set of objects the policy applies to. Theoretically, you can use any condition to filter out the targets. However, there is a tradeoff between flexibility and performance. The performance penalty in allowing arbitrary filter conditions becomes significant with On Change evaluation modes since the policy evaluation is done alongside the transaction. It is less an issue for On Schedule mode since users can choose to run the policy at off-peak time. For that reason, we made a tradeoff: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1) For the common use cases where the filter is a “name condition” on Database, that is: &amp;lt;@name, [Operator], [value]&amp;gt;, we allow the full set of applicable evaluation modes because there is an efficient way in calculating the target set.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2) For the use cases where arbitrary filter conditions are needed, we allow the flexibility but for performance reason we don’t allow On Change evaluation modes.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The syspolicy_conditions_internal.is_name_condition indicates if this condition is a “name condition” (when the value is not 0).&lt;/p&gt;  &lt;p&gt;Is_name_condition has the following enum values (representing the operator in the filter condition):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;0 : None&lt;/p&gt;    &lt;p&gt;1: Equals&lt;/p&gt;    &lt;p&gt;2: Like&lt;/p&gt;    &lt;p&gt;3: NotEqual&lt;/p&gt;    &lt;p&gt;4: NotLike&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="4"&gt;Summary&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Not all policies support On Change evaluation modes. We only support On Change evaluation modes for a policy when the referred facet has DDL event coverage and the target filter conditions for the policy are simply Naming conditions if there are any.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;About the Author:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Hongfei Guo is a PM on the SQL Server Manageability team at Microsoft&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9547636" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/SQL+Server+2008/">SQL Server 2008</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Evaluation+Mode/">Evaluation Mode</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Check+On+Shcedule/">Check On Shcedule</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Check+On+Change/">Check On Change</category></item><item><title>Defining Complex Server "Health" Policies in SQL2K8</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2008/09/11/defining-complex-server-health-policies-in-sql2k8.aspx</link><pubDate>Fri, 12 Sep 2008 06:07:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8945803</guid><dc:creator>sqlpbm</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=8945803</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2008/09/11/defining-complex-server-health-policies-in-sql2k8.aspx#comments</comments><description>&lt;p&gt;Bart Duncan (a dev on the manageability team and one of the masterminds behind the Management Data Warehouse and Data Collector feature in SQL Server 2008) has a blog &lt;a href="http://blogs.msdn.com/bartd/archive/2008/09/11/defining-complex-server-health-policies-in-sql-2008.aspx" target="_blank"&gt;posting&lt;/a&gt; where he walks through using PBM to author a complex server &amp;quot;health&amp;quot; policy.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8945803" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/SQL+Server+2008/">SQL Server 2008</category></item><item><title>Out-Of-Box Policies</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2008/07/15/out-of-box-policies.aspx</link><pubDate>Tue, 15 Jul 2008 23:10:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8734903</guid><dc:creator>sqlpbm</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=8734903</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2008/07/15/out-of-box-policies.aspx#comments</comments><description>&lt;p&gt;SQL Server 2008 includes several predefined policies. These are generally associated with best practices and overtime the rules from the Best Practices Analyzer will be implemented as policies for PBM. A number of these have already been implemented and are available to you in one of two forms: &lt;/p&gt;  &lt;p&gt;First, they're installed as part of every Management Studio installation. There is no specific feature option to select in the setup GUI, just install Management Studio (Management Tools - Basic) and the policies will be installed. The policies are placed on your local machine in the form of XML files. These files can be imported into an instance of SQL Server 2008 or can be run directly from the XML files. The location of the files depends on where you chose to install the client tools. On a default install, you'll find them here: C:\Program Files\microsoft sql server\100\Tools\Policies&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The second way to get the policies is to download them from the feature pack. Here's the link to the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=089a9dad-e2df-43e9-9cd8-c06320520b40&amp;amp;DisplayLang=en" target="_blank"&gt;RC0 feature pack&lt;/a&gt;. If you scroll down the page you'll find an entry for Microsoft SQL Server 2008 Policies. You can download and run the MSI. You'll have an option to install the policies to any location you like.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It's a good idea to periodically check for updates to the policies. Overtime we'll add new policies, change existing ones as needed and remove out-dated policies. If you decide to modify one of these policies we recommend you move it to a different location to avoid it from being overwritten by an update.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;_____________&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;About the Author:      &lt;br /&gt;Dan Jones is a PM on the SQL Server Manageability team at Microsoft.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8734903" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Best+Practice/">Best Practice</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/SQL+Server+2008/">SQL Server 2008</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Evaluation+Mode/">Evaluation Mode</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Check+On+Shcedule/">Check On Shcedule</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Check+On+Change/">Check On Change</category></item><item><title>Policy Categories</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2008/07/07/policy-categories.aspx</link><pubDate>Mon, 07 Jul 2008 22:06:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8703656</guid><dc:creator>sqlpbm</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=8703656</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2008/07/07/policy-categories.aspx#comments</comments><description>&lt;p&gt;Policy categories have two purposes in SQL2K8: 1) organization of policies and 2) policy scope. In this posting we'll explore creating categories for each of these purposes.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;Creating Categories&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;There are two ways to create a category: 1) the &lt;font face="Courier"&gt;Manage Categories&lt;/font&gt; dialog and 2) The &lt;font face="Courier"&gt;Policy Properties&lt;/font&gt; dialog. &lt;/p&gt;  &lt;p&gt;To create a category from the Manage Categories dialog, connect Object Explorer to an instance of SQL2K8. Expand the &lt;font face="Courier"&gt;Management&lt;/font&gt; node, right-click on the &lt;font face="Courier"&gt;Policy Management&lt;/font&gt; and select &lt;font face="Courier"&gt;Manage Categories&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ManageCategories.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="194" alt="ManageCategories" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ManageCategories_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This will launch the &lt;font face="Courier"&gt;Manage Categories&lt;/font&gt; dialog. On this dialog you can create, update, and delete categories and change the subscription state for each category. I'll cover the subscription state later on.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ManageCategoriesDialog_1.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="287" alt="ManageCategoriesDialog" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ManageCategoriesDialog_thumb_1.png" width="410" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To create a new category click in the Name field on the last row and type in the name for the category. This will create a new category which is mandatory for every database. Click OK to dismiss the dialog and you're done.&lt;/p&gt;  &lt;p&gt;You can also create a new category from the &lt;font face="Courier"&gt;Policy Properties&lt;/font&gt; dialog. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/PolicyDialog.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="288" alt="PolicyDialog" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/PolicyDialog_thumb.png" width="336" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On the &lt;font face="Courier"&gt;Description&lt;/font&gt; tab click &lt;font face="Courier"&gt;New&lt;/font&gt; next to the &lt;font face="Courier"&gt;Category &lt;/font&gt;field. This launches the new &lt;font face="Courier"&gt;Create new category&lt;/font&gt; which accepts a category name. The category will be created as mandatory for all databases. You also use this dialog to assign a policy to a particular category. Use the category combo box to select a category. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;Organizing Policies&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;There are a few key places where the use of categories simplifies certain actions.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Object Explorer Details&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;When the &lt;font face="Courier"&gt;Policies&lt;/font&gt; folder is selected in Object Explorer, Object Explorer Details lists all of the policies on the system with a select set of properties, including Category.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ObjectExplorerDetails.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="ObjectExplorerDetails" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ObjectExplorerDetails_thumb.png" width="336" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The columns in Object Explorer Details can be sorted, just click on the column heading you wish to sort by.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ObjectExplorerDetailsSorted.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="ObjectExplorerDetailsSorted" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ObjectExplorerDetailsSorted_thumb.png" width="333" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Sorting on category can make it easier to perform certain operations.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ObjectExplorerDetailsContextMenu.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="155" alt="ObjectExplorerDetailsContextMenu" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ObjectExplorerDetailsContextMenu_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Evaluate, Export, and Script are all valid operations on a set of policies. You could use ctrl-click to select multiple disjointed policies but I've found sorting to be quicker and less error prone.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;View Policies Dialog&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Right-click any object in Object Explorer and select Policies -&amp;gt; View to see the policies which apply (or can apply) to the selected object. The &lt;font face="Courier"&gt;View Policies&lt;/font&gt; dialog is displayed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ViewPoliciesDialog.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="ViewPoliciesDialog" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/ViewPoliciesDialog_thumb.png" width="430" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Category is a property in the table which can be used to sort the policies. This makes it easy to see which policies in a particular category apply to the object or are in violation.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Evaluate Policies&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;The &lt;font face="Courier"&gt;Evaluate Policies&lt;/font&gt; dialog allows you to manually evaluate one or more policies against a single object or against the computed target set (all objects the policies applies to). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/EvaluatePolicies.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="314" alt="EvaluatePolicies" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/EvaluatePolicies_thumb.png" width="426" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This dialog includes the Category property which you can sort on. If you wish to run all of the policies in a particular category sorting them first prevents you from having to hunt and peck for each policy in a particular category.&lt;/p&gt;  &lt;p&gt;In this section we looked at several places where using categories can expedite certain policy tasks. Now let's look at category subscriptions which controls the applicability of policies.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;Delegation of Policy Applicability&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Using categories databases can subscribe to certain sets of policies. Subscribe simply means that all of the policies in the category may apply or do not apply to the particular database. This is only applicable to policies which target databases or objects contained in a database. Policies which target the instance and instance objects (excluding database) are excluded from the subscription.&lt;/p&gt;  &lt;p&gt;Categories can be configured for mandatory subscription, meaning all databases must subscribe to the category and cannot opt out, and non-mandatory subscriptions, meaning individual databases can opt-in/opt-out of policies in the category.&lt;/p&gt;  &lt;p&gt;When a database subscribes to a category it's not implicit that all policies in the category apply to the database and all objects in the database. The policy may contain a target filter which eliminates certain objects from the scope of the policy. However, if a database does not subscribe to a category the database and all database objects in that databases are explicitly excluded from the scope of the policy.&lt;/p&gt;  &lt;p&gt;There are certain situations where optional categories make sense. A set of policies may only apply to certain databases but the Policy Administrator doesn't know which databases the policies apply to. However the owner of the database does know and can choose which policy categories apply and which don't.&lt;/p&gt;  &lt;p&gt;For example you may have a set of policies that only apply to reporting (read-only) databases, but only the database owner knows if their database is a reporting database (there is no database attribute to designate this type of database and therefore no way to construct a target filter). The Policy Administrator would create the policies for reporting databases in a category called &amp;quot;Reporting Database Policies&amp;quot;. The category is configured to be optional. Each database owner can then choose to subscribe to the category or not.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#800000"&gt;Security Notice: You must be SA or DBO of the database to control policy category subscriptions.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/DatabaseCategories.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="251" alt="DatabaseCategories" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/DatabaseCategories_thumb.png" width="307" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This launches the &lt;font face="Courier"&gt;Categories&lt;/font&gt; dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/CategoriesDialog_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="285" alt="CategoriesDialog" src="http://blogs.msdn.com/blogfiles/sqlpbm/WindowsLiveWriter/Categories_E16A/CategoriesDialog_thumb_2.png" width="431" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Mandatory categories appear subscribed to and disabled - meaning they cannot be unsubscribed from. The &amp;quot;&amp;lt;Default&amp;gt;&amp;quot; category is always mandatory. Non-mandatory categories have the subscription checkbox enabled to allow the database owner to subscribe/unsubscribe as appropriate. When the category is expanded the list of policies in the category is displayed. To subscribe to the category select the checkbox under the Subscribed column and click OK.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="3"&gt;Summary&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Categories serve two purposes: 1) organization (group like policies together) and 2) policy scope. It's a best practice to categorize your policies by their purpose (such as industry compliance or security). Choosing to mark the categories as optional or mandatory depends on your particular situation.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#008040"&gt;Suggestion: If you have SQL2K and/or SQL2K5 servers in your topology and you want to create policies for these servers you can create policies on a SQL2K8 server. Create two non-mandatory categories, &amp;quot;SQL Server 2000&amp;quot; and &amp;quot;SQL Server 2005&amp;quot; and place each policy in the appropriate category. This will make it easier to track what the policies are for. If you automate the policies using PowerShell you can easily select the correct set of policies for each server version.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;_____________&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;About the Author:      &lt;br /&gt;Dan Jones is a PM on the SQL Server Manageability team at Microsoft.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8703656" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Policy/">Policy</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Management+Studio/">Management Studio</category><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/SQL+Server+2008/">SQL Server 2008</category></item><item><title>Wide Format</title><link>http://blogs.msdn.com/b/sqlpbm/archive/2008/07/06/wide-format.aspx</link><pubDate>Sun, 06 Jul 2008 20:24:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8697578</guid><dc:creator>sqlpbm</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/sqlpbm/rsscomments.aspx?WeblogPostID=8697578</wfw:commentRss><comments>http://blogs.msdn.com/b/sqlpbm/archive/2008/07/06/wide-format.aspx#comments</comments><description>&lt;p&gt;You may notice I've changed the blog format from narrow to wide. I think this makes it more readable as it uses more screen real estate - less scrolling! Let me know what you think. Or let me know if you think I'm obsessing too much about something insignificant and I should be directing that energy to more postings.&lt;/p&gt;  &lt;p&gt;Cheers,   &lt;br /&gt;Dan&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8697578" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/sqlpbm/archive/tags/Nonsense/">Nonsense</category></item></channel></rss>