<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>progress.solvepoint.com &#187; Security</title>
	<atom:link href="http://progress.solvepoint.com/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://progress.solvepoint.com</link>
	<description>Progress Blog - OpenEdge, WebSpeed, Sonic, 4GL, ABL, QAD, Epicor, and all things Progress</description>
	<lastBuildDate>Sat, 15 May 2010 18:29:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Little-known OpenEdge Database _User Table Security Behavior</title>
		<link>http://progress.solvepoint.com/2007/11/30/openedge-database-table-level-security/</link>
		<comments>http://progress.solvepoint.com/2007/11/30/openedge-database-table-level-security/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 22:48:39 +0000</pubDate>
		<dc:creator>JohnK</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://progress.solvepoint.com/2007/11/30/openedge-database-table-level-security/</guid>
		<description><![CDATA[Since it is not well known, I thought that I&#8217;d bring the following information to light regarding the OpenEdge _User Table Security Behaviour.

OpenEdge Database security is implemented at the table level not the connection level.  This means that, even with &#8220;blank user disabled&#8221;, a client may still connect.  Security is only checked when [...]]]></description>
			<content:encoded><![CDATA[<p>Since it is not well known, I thought that I&#8217;d bring the following information to light regarding the OpenEdge _User Table Security Behaviour.</p>
<ol>
<li>OpenEdge Database security is implemented at the table level not the connection level.  This means that, even with &#8220;blank user disabled&#8221;, a client may still connect.  Security is only checked when that user attempts to access a table.  Take careful note of the confirmation message:
<p>You are about to prevent the blank userid from<br />
accessing your database.  Users who are not<br />
listed in the data security fields <strong>will not<br />
be able to <font color="#0000ff">compile procedures</font> with this database</strong>.</p>
<p>Notice it says nothing about connecting.  Which brings us to point 2.</li>
<li>Table level access is <u>compiled</u> into a .r.  Therefore an _user without any access to that table may still run the .r successfully (even the client connected <u>without</u> a user id).</li>
<li>The _user row may be modified or completely removed without affecting the running sessions (even after a STOP is raised).</li>
<li>The _user password can only be changed when connected via that _user.</li>
<li>The _user row , however, may be deleted by any session that has _can-delete on the _user table.</li>
<li>The same _user row may then be created again with a different password (yikes!). (Still does not affect any running sessions).</li>
</ol>
<p>Please keep these behaviors in mind as you plan your security strategy.</p>
<p>PS: Please be aware that Progress says it will be modifying security including adding run-time capabilities sometime in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://progress.solvepoint.com/2007/11/30/openedge-database-table-level-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

