<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: SQL Server Security &#8211; Database Roles</title>
	<atom:link href="http://facility9.com/2008/12/31/sql-server-security-database-roles/feed" rel="self" type="application/rss+xml" />
	<link>http://facility9.com/2008/12/31/sql-server-security-database-roles</link>
	<description>Jeremiah Peschka&#039;s ruminations on sql, ruby, c#, and other things</description>
	<lastBuildDate>Wed, 28 Jul 2010 14:05:12 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Row-Based Security &#124; facility9</title>
		<link>http://facility9.com/2008/12/31/sql-server-security-database-roles#comment-200</link>
		<dc:creator>Row-Based Security &#124; facility9</dc:creator>
		<pubDate>Wed, 11 Feb 2009 01:12:22 +0000</pubDate>
		<guid isPermaLink="false">http://facility9.com/?p=254#comment-200</guid>
		<description>[...] the first two installments of my articles on SQL Server security, I described server level roles and flexible database-level roles. This final article talks about row-based security, specifically [...]</description>
		<content:encoded><![CDATA[<p>[...] the first two installments of my articles on SQL Server security, I described server level roles and flexible database-level roles. This final article talks about row-based security, specifically [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: How I Get By Without sysadmin &#124; facility9</title>
		<link>http://facility9.com/2008/12/31/sql-server-security-database-roles#comment-166</link>
		<dc:creator>How I Get By Without sysadmin &#124; facility9</dc:creator>
		<pubDate>Thu, 22 Jan 2009 14:02:49 +0000</pubDate>
		<guid isPermaLink="false">http://facility9.com/?p=254#comment-166</guid>
		<description>[...] SQL Server Security - Database Roles Flexible Database-Level Roles [...]</description>
		<content:encoded><![CDATA[<p>[...] SQL Server Security &#8211; Database Roles Flexible Database-Level Roles [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Flexible Database-Level Roles &#124; facility9</title>
		<link>http://facility9.com/2008/12/31/sql-server-security-database-roles#comment-165</link>
		<dc:creator>Flexible Database-Level Roles &#124; facility9</dc:creator>
		<pubDate>Wed, 21 Jan 2009 22:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://facility9.com/?p=254#comment-165</guid>
		<description>[...] is following up from my previous post on Database Roles. In my previous post, I talked about fixed database roles. If you&#8217;ve forgotten, go back and [...]</description>
		<content:encoded><![CDATA[<p>[...] is following up from my previous post on Database Roles. In my previous post, I talked about fixed database roles. If you&#8217;ve forgotten, go back and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Walsh</title>
		<link>http://facility9.com/2008/12/31/sql-server-security-database-roles#comment-155</link>
		<dc:creator>Mike Walsh</dc:creator>
		<pubDate>Fri, 09 Jan 2009 04:03:59 +0000</pubDate>
		<guid isPermaLink="false">http://facility9.com/?p=254#comment-155</guid>
		<description>Good Post - I found you through The Rambling DBA&#039;s blog (http://jmkehayias.blogspot.com/) I like the article and the explanations. A lot of folks seem to neglect some of these items in their study.

The only comment I would add for clarification is about the Public Role.. By default, every user of a database is a member of that role, and they can&#039;t be removed from that role. So if you add a login to a database as a user (at the &quot;server&quot; or instance level you have a login and within the database you have a &quot;user&quot;.. I know you know that just for comment readers).

Every user of a database belongs to the public role. The public role in my databases is usually a very inconsequential role. It exists and everyone belongs to it. Where it can come in handy (or as I see it where it can become dangerous) is if you assign a permission to that role, every single user of that database will always have that permission.

So if you always want to grant select on the &quot;Welcome&quot; table to every single user of a database you could grant that to this role:

GRANT SELECT ON DBO.WELCOME TO PUBLIC

Makes life easier if you don&#039;t do role based security and add individual users but if you have an employee that isn&#039;t supposed to read from that table, oops. So I leave that role alone.

I have seen folks do some strange things with the public role and didn&#039;t like the security holes left. Auditors don&#039;t care for that role having permissions either (at least auditors who are truly familiar with SQL Server)</description>
		<content:encoded><![CDATA[<p>Good Post &#8211; I found you through The Rambling DBA&#8217;s blog (<a href="http://jmkehayias.blogspot.com/" rel="nofollow">http://jmkehayias.blogspot.com/</a>) I like the article and the explanations. A lot of folks seem to neglect some of these items in their study.</p>
<p>The only comment I would add for clarification is about the Public Role.. By default, every user of a database is a member of that role, and they can&#8217;t be removed from that role. So if you add a login to a database as a user (at the &#8220;server&#8221; or instance level you have a login and within the database you have a &#8220;user&#8221;.. I know you know that just for comment readers).</p>
<p>Every user of a database belongs to the public role. The public role in my databases is usually a very inconsequential role. It exists and everyone belongs to it. Where it can come in handy (or as I see it where it can become dangerous) is if you assign a permission to that role, every single user of that database will always have that permission.</p>
<p>So if you always want to grant select on the &#8220;Welcome&#8221; table to every single user of a database you could grant that to this role:</p>
<p>GRANT SELECT ON DBO.WELCOME TO PUBLIC</p>
<p>Makes life easier if you don&#8217;t do role based security and add individual users but if you have an employee that isn&#8217;t supposed to read from that table, oops. So I leave that role alone.</p>
<p>I have seen folks do some strange things with the public role and didn&#8217;t like the security holes left. Auditors don&#8217;t care for that role having permissions either (at least auditors who are truly familiar with SQL Server)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremiah Peschka</title>
		<link>http://facility9.com/2008/12/31/sql-server-security-database-roles#comment-150</link>
		<dc:creator>Jeremiah Peschka</dc:creator>
		<pubDate>Fri, 02 Jan 2009 18:21:57 +0000</pubDate>
		<guid isPermaLink="false">http://facility9.com/?p=254#comment-150</guid>
		<description>Benjamin, thanks for catching that. The way I wrote it was unclear. I updated the text, but basically if you add db_denydatareader, members of the HR group won&#039;t be able to run ad hoc SQL queries so long as your application is using Windows Forms authentication (or some other passthrough that makes use of the user&#039;s Windows credentials).</description>
		<content:encoded><![CDATA[<p>Benjamin, thanks for catching that. The way I wrote it was unclear. I updated the text, but basically if you add db_denydatareader, members of the HR group won&#8217;t be able to run ad hoc SQL queries so long as your application is using Windows Forms authentication (or some other passthrough that makes use of the user&#8217;s Windows credentials).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Benjamin Lotter</title>
		<link>http://facility9.com/2008/12/31/sql-server-security-database-roles#comment-149</link>
		<dc:creator>Benjamin Lotter</dc:creator>
		<pubDate>Fri, 02 Jan 2009 16:26:45 +0000</pubDate>
		<guid isPermaLink="false">http://facility9.com/?p=254#comment-149</guid>
		<description>I was a little confused after reading the sections on db_denydatareader and db_denydatawriter.  Can you clarify the following statements?

Why use db_denydatareader In addition to the accounting department’s requirement to be able to create ad hoc reports as needed, HR needs to be able to run the canned reports available to them through your carefully crafted stored procedures. It turns out that they are also able to create and run ad hoc reports (thankfully your junior DBA emailed you about this yesterday before he got sick). Thankfully, you can quickly grant db_denydatareader permissions to the HR Windows group and get in touch with the application developers to have them hide ad hoc reports from the HR group.</description>
		<content:encoded><![CDATA[<p>I was a little confused after reading the sections on db_denydatareader and db_denydatawriter.  Can you clarify the following statements?</p>
<p>Why use db_denydatareader In addition to the accounting department’s requirement to be able to create ad hoc reports as needed, HR needs to be able to run the canned reports available to them through your carefully crafted stored procedures. It turns out that they are also able to create and run ad hoc reports (thankfully your junior DBA emailed you about this yesterday before he got sick). Thankfully, you can quickly grant db_denydatareader permissions to the HR Windows group and get in touch with the application developers to have them hide ad hoc reports from the HR group.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
