<?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>GrindSmart &#187; management system</title>
	<atom:link href="http://grindsmart.com/tag/management-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://grindsmart.com</link>
	<description></description>
	<lastBuildDate>Thu, 05 Aug 2010 13:50:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vital MySQL Development Security Tips</title>
		<link>http://grindsmart.com/2010/02/vital-mysql-development-security-tips/</link>
		<comments>http://grindsmart.com/2010/02/vital-mysql-development-security-tips/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 18:57:50 +0000</pubDate>
		<dc:creator>GrindSmart Editorial</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Popular]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[management system]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[RDBMS]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://grindsmart.com/?p=397</guid>
		<description><![CDATA[
			
				
			
		
When you&#8217;re developing applications or a website using MySQL, there are a few tips you can follow to enhance the security of your database. When you create a database and use PHP to code your applications you&#8217;re automatically faced with hash security risks that can hinder what you&#8217;ve worked hard to develop. Below, we&#8217;re going ]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fgrindsmart.com%2F2010%2F02%2Fvital-mysql-development-security-tips%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fgrindsmart.com%2F2010%2F02%2Fvital-mysql-development-security-tips%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>When you&#8217;re developing applications or a website using <strong>MySQL</strong>, there are a few tips you can follow to enhance the security of your database. When you create a database and use PHP to code your applications you&#8217;re automatically faced with hash security risks that can hinder what you&#8217;ve worked hard to develop. Below, we&#8217;re going to touch base on a few Vital MySQL Development Security Tips that will help you secure your database. If you haven&#8217;t already, read our <a href="http://grindsmart.com/2009/12/vital-tips-for-working-with-mysql-databases/" target="_self"><strong>Vital Tips for Working with MySQL Databases</strong></a> article for more information.</p>
<p>Hope you enjoy! Please remember to <a href="http://feeds.feedburner.com/grindsmartnews"><strong>subscribe</strong></a> to our feed and leave us a comment with your thoughts!</p>
<h1><strong>How Does MySQL Really Work?</strong></h1>
<p><strong>MySQL security</strong> operates on the <a href="http://en.wikipedia.org/wiki/Access_control_list">Access Control List</a> (ACL) fundamentals for all connections, queries and several other functions that users perform. But what does it all mean? This pretty much means that as different users access your site, each one can have a different level of access to certain databases and tables. Some will also be limited to certain operations, however, this depends totally on what level of security and privileges you, the developer, decides to give users. In example, a user with complete privileges that accesses your your site may be able to perform such operations as view registered users, delete them, add new users, email them and moderate them in general. While another set of users may be limited to what they can do, and they may only be allowed to view, or in other words be a &#8220;<em>spectator</em>&#8220;.</p>
<p>With all of these privileges and limited operations, there may be <strong>users that are out to gain full privileges and access to your database</strong> whether you give it to them or not. Their main goal is to bypass all of your security measures, and for these users and security risks, you should implement a few of the tips you&#8217;ll get aquatinted with below.</p>
<h1><strong>Vital Tips for Development</strong></h1>
<p><strong>1.</strong><strong> Validation of user input necessary from the server side</strong> – Validate the user input with Javascript from the server side as well, if you have done so from the user’s perspective.</p>
<p><strong>2.</strong> <strong>Do not blindly follow User Input</strong> – Do not trust the input by the user without verifying its compatibility or correctness. Checking with the strstr() and prompting that the username is not valid to the user is a good countermeasure.</p>
<p>3. <strong>Direct implementation of user input on SQL queries to be avoided</strong> – Do not directly use the user input into SQL queries.</p>
<p>4. <strong>Up to date 3rd party code libraries</strong> – The latest version of all 3rd party code libraries should be with you to avoid jeopardizing the security of the code.</p>
<p>5. <strong>Library file extensions to be PHP</strong> – Have a PHP extension to avoid others to manipulate your passwords and other confidential information and data in the code.</p>
<p>6. <strong>PHP too, should be up to date</strong> – Keep checking the site www.php.net and keep consulting with other PHP development experts or colleagues regularly to append as well as know about fixes on security issues, regarding  MySQL development.</p>
<p>7. <strong>Be Well Read about Security concerns</strong> – Read books, consult web development experts and also read about the contemporary trends in security concerns in MySQL and PHP development round the world.</p>
<p>8.<strong> Escape the Output</strong> – Helps you avoid XSS (Cross Site Scripting) invasions on your development code.</p>
]]></content:encoded>
			<wfw:commentRss>http://grindsmart.com/2010/02/vital-mysql-development-security-tips/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Vital Tips for Working with MySQL Databases</title>
		<link>http://grindsmart.com/2009/12/vital-tips-for-working-with-mysql-databases/</link>
		<comments>http://grindsmart.com/2009/12/vital-tips-for-working-with-mysql-databases/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 09:12:06 +0000</pubDate>
		<dc:creator>GrindSmart Editorial</dc:creator>
				<category><![CDATA[Popular]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[management system]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[RDBMS]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://grindsmart.com/?p=107</guid>
		<description><![CDATA[
			
				
			
		
MySQL is one of the most popular relational database management systems (RDBMS) around, with over 6 million installations. It&#8217;s a fantastic choice for any new developer, because of its open source nature, wide support and abundance of tutorials available on the subject.
Here are a few Valuable Tips, Tutorials, and Applications users need to know when ]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fgrindsmart.com%2F2009%2F12%2Fvital-tips-for-working-with-mysql-databases%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fgrindsmart.com%2F2009%2F12%2Fvital-tips-for-working-with-mysql-databases%2F&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><strong>MySQL</strong> is one of the most popular <strong>relational database management systems</strong> (RDBMS) around, with over 6 million installations. It&#8217;s a fantastic choice for any new developer, because of its open source nature, wide support and abundance of tutorials available on the subject.</p>
<p>Here are a few <em><strong>Valuable Tips, Tutorials, and Applications users need to know when  working with MySQL.</strong></em></p>
<h1><strong>Installing SQL</strong></h1>
<p>If you&#8217;re a newbie to the server side coding arena, don&#8217;t worry. Installing SQL is very, very simple. Ok, well if you do it the geeky way it could take you hours, but there are several scripts out there that come packaged with an SQL installer. They also typically provide a server on your local machine which is very handy.</p>
<h2><strong><a href="http://www.mamp.info">MAMP</a></strong></h2>
<p>Mac only PHP, SQL &amp; Apache Installer</p>
<p><a href="http://www.mamp.info"><img src="http://grindsmart.com/wp-content/uploads/2009/12/1.jpg" alt="" /></a></p>
<h2><strong><a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a></strong></h2>
<p>Windows, Linux &amp; Mac installer</p>
<p><a href="http://www.apachefriends.org/en/xampp.html"><img src="http://grindsmart.com/wp-content/uploads/2009/12/2a.jpg" alt="" /></a></p>
<h2><strong><a href="http://www.wampserver.com/en/" target="_blank">WAMP</a></strong></h2>
<p>A windows only LAMP installer</p>
<p><a href="http://www.wampserver.com/en/"><img src="http://grindsmart.com/wp-content/uploads/2009/12/2.jpg" alt="" /></a></p>
<h2><strong><a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank">MySQL Server 5.1</a></strong></h2>
<p>If you just want MySQL server, and like using command line then this might suit you. For info on how to install and work with the MySQL server, check this <a href="http://net.tutsplus.com/tutorials/php/everything-you-need-to-get-started-with-mysql/" target="_blank"><strong>NetTuts +</strong></a> tutorial.</p>
<p><a href="http://dev.mysql.com/downloads/mysql/5.1.html"><img src="http://grindsmart.com/wp-content/uploads/2009/12/3.jpg" alt="" /></a></p>
<h1><strong>SQL Tips</strong></h1>
<p>The following tips will certainly help you in writing efficient, organized, and correct code.</p>
<h2><strong>Optimize your code</strong></h2>
<p>Imagine if you have 100 records, 10 columns.Your working with a database of your clients details, and need to select their name, phone number and address. You&#8217;d write:</p>
<p><code>SELECT * FROM clients;</code></p>
<p>What&#8217;s up with that? Nothing. You&#8217;d then simply reference the columns you want later. <strong>Wrong!</strong> That single line of code is highly inefficient. It&#8217;s fetching 1000 pieces of information from the database! However, if you wrote this:</p>
<p><code>SELECT name, phone, address FROM clients;</code></p>
<p>You&#8217;ve now cut down to only 300 calls. That&#8217;s a 700 saving. Probably not noticeable on a database that size, but you should always think about what your code is actually doing. That way, you can code efficiently in the first place, and make your app much more scalable.</p>
<blockquote><p><strong>Super Tip:</strong> In some cases, you can cut down to simply 3, by using a well thought out &#8216;WHERE&#8217; clause.</p></blockquote>
<h2><strong>Understand the Code</strong></h2>
<p>Its been said that <strong>60% of sql optimization is understanding sql</strong> and the basics of databases. Spend time learning the difference between joins and sub selects. Its important that you know what technique to use and under what circumstance, so every hour spent here will yield noticeable results.  So purchase a good book on MySQL and get learning. Knowledge is the root of power.</p>
<h2><strong>Keep Your Code Tidy and Organised</strong></h2>
<p>As with any coding you do, keep your SQL tidy and well formatted. Doing so will help you when debugging &amp; generally managing code. There are several tools available to help you do so, complete with colour coding and code formatting.</p>
<ul>
<li><a href="http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl" target="_blank"><strong>Instant SQL Formatter</strong></a> is a free online service that beautifies and tidies your SQL code. It also converts SQL to html for easy posting to blog&#8217;s or web sites, and makes a great tool in any developers arsenal. <strong><a href="http://www.dpriver.com/pp/sqlformat.htm"></a></strong></li>
</ul>
<h2><strong>Add Tables and Columns Sparingly</strong></h2>
<p>One of the most effective methods for keeping your application simple, performance consist ant and code streamlined is asking yourself, &#8220;Do I really need to add this table or column?&#8221; Could the task be accomplished by using a join or simply by storing data in one row and using coding later on to separate it out. By doing so you are cutting down and bloat, and making your app as dynamic and streamlined as possible.</p>
<h2><strong>Change one thing at once</strong></h2>
<p>Like SQL, racing cars are pretty technical. They require tuning and set-up in order to work to the absolute optimum. So does SQL. But, one thing that race car engineers never, ever do is change more than 1 thing at once. If you alter one table, one field, one column the effects multiplied over 1000&#8217;s could be disastrous. Even if it doesn&#8217;t break your whole database, and just has one little quirk, changing your code to do only one new thing at once will mean you know exactly what&#8217;s breaking your code.</p>
<h2><strong>Back-up Regularly</strong></h2>
<p>Whether your on a shared host, dedicated server or running on a local dev machine, backing-up is essential. On your local machine, make sure you back-up to an external hard drive (including your databases) or even better, to an online service such as Carbonite. Then, if you have a fire or flood in your office your backed-up, and all your development projects are stored away safely.</p>
<p>On shared / dedicated servers, you can set-up CRON jobs to back-up databases regularly, meaning if the site goes down, you can simply reload the database and carry on from where you left off, give or take a days worth of data.</p>
<p>Finally, when working on dev projects, before altering databases, its a great idea to back-up. That way, if your alteration breaks the whole database, you can simply replace the corrupt one with a back-up and try again. Combined with one alteration at once, and you have a solid SQL programming plat from to work from.</p>
<h2><strong>Caching</strong></h2>
<p>If your database is going to be read more than written to, consider using a cache. Doing so cuts down on calls to the server, and thus reduces load on the server.</p>
<p>The MySQL site has a great tutorial on using Query Cache, which essentially saves a SELECT command in the cache, then if its called again, the cache can serve the results rather than call the database again.</p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/query-cache.html" target="_blank"><strong>7.5.5. The MySQL Query Cache</strong></a></p>
<h2><strong>Use a Cheatsheet / Reference</strong></h2>
<p><strong>Cheatsheet&#8217;s</strong> always seem to have a stigma attached to them. Probably because of the name, and their usage in exams. But, cheatsheet and references will help you no end in your general day to day working with SQL. Who wants to become an SQL walking encyclopedia? Remember all the stuff you really need, and the more obscure / less used functions are always only a few clicks away:</p>
<p>The MySQL official reference is essentially the SQL bible. Loads of great tips and advice, plus help in case you need a refresher on what an Identifier Qualifier is. They also have past versions of SQL documented, plus SQL 5.0, 5.1 and 5.4.</p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/en/" target="_blank"><strong>MySQL 5.0 Reference Manual</strong></a></p>
<p><a href="http://www.addedbytes.com/cheat-sheets/mysql-cheat-sheet/"><strong>MySQL Cheat Sheet</strong></a></p>
<h2><strong>Never Stop Learning</strong></h2>
<p>Just because you buy several books on MySQL doesn&#8217;t mean you&#8217;ll be Mr RDBSMS Rockstar straightaway. You need to practice what you&#8217;ve learned in real world situations, and always, always top up your knowledge by going back and re-learning what you&#8217;ve learned or checking out new tutorials on the matter. Here&#8217;s a refresher on <a href="http://net.tutsplus.com/tutorials/other/10-essential-sql-tips-for-developers/" target="_blank"><strong>Net.Tuts +</strong></a>.</p>
<h1><strong>MySQL GUI&#8217;s</strong></h1>
<p>A GUI (Graphic User Interface simplifies working with MySQL. Instead of working purely on the command line, you get a friendly interface that formats date, gives you a code editor and generally improves the whole experience of working with raw code. Think user friendly and time saving.</p>
<p>Here&#8217;s a few of the better ones on the market, both <em><strong>free</strong></em> and <em><strong>paid</strong></em>.</p>
<h2><a href="http://www.razorsql.com/"><strong>RazorSQL</strong></a></h2>
<p>RazorSQL is an SQL query tool, database browser, SQL editor, and database administration tool for Windows, Mac OS X, Linux, and Solaris. RazorSQL has been tested on over 29 databases, can connect to databases via either JDBC or ODBC. Its available for $59.95.</p>
<p><a href="http://www.razorsql.com/"><img src="http://grindsmart.com/wp-content/uploads/2009/12/4.jpg" alt="" /></a></p>
<h2><a href="http://www.araelium.com/querious/"><strong>Querious</strong></a></h2>
<p>Viewing, searching, editing, importing, exporting, and structuring your data has never been so easy. With Querious, you can even open up raw CSV or Tab files in a spreadsheet-like document. Need to rename or reorder the columns? No problem. Searching for data is a breeze, and you can even convert the whole file to another format in a snap. It costs $25.</p>
<p><a href="http://www.araelium.com/querious/"><img src="http://grindsmart.com/wp-content/uploads/2009/12/5.jpg" alt="" /></a></p>
<h2><a href="http://www.malcolmhardie.com/sqleditor/index.html" target="_blank"><strong>SQLEditor</strong></a></h2>
<p>A Database design and entity relationship diagram (ERD) tool for Mac OS X.</p>
<p>SQLEditor replaces typing SQL by hand with dragging, dropping and clicking. It makes creating databases much faster and really reduces errors.If you already have a database then SQLEditor can help you see what it looks like by creating a diagram of it. SQLEditor works on Mac, and supports Snow Leopard.</p>
<p><a href="http://www.malcolmhardie.com/sqleditor/index.html"><img src="http://grindsmart.com/wp-content/uploads/2009/12/6.jpg" alt="" /></a></p>
<h2><a href="http://www.sqlgrinder.com/"><strong>SQLGrinder2</strong></a></h2>
<p>SQLGrinder™ is an SQL editor and developer tool that gives you the tools needed to make your database development easy. Using SQLGrinder you can create, edit and execute SQL statements. You can browse your database schema. SQL Grinder costs $59 and works on OSX.</p>
<p><a href="http://www.sqlgrinder.com/"><img src="http://grindsmart.com/wp-content/uploads/2009/12/7.jpg" alt="" /></a></p>
<h2><a href="http://www.sequelpro.com" target="_blank"><strong>SequelPro</strong></a></h2>
<p>Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases. Sequel Pro is free, open source and well worth a look at.</p>
<p><a href="http://www.sequelpro.com/"><img src="http://grindsmart.com/wp-content/uploads/2009/12/8.jpg" alt="" /></a></p>
<h1><strong>MySQL GUi Tools</strong></h1>
<p><a href="http://dev.mysql.com/downloads/gui-tools/5.0.html/"><img src="http://grindsmart.com/wp-content/uploads/2009/12/9.jpg" alt="" /></a></p>
<p>The MySQL GUI Tools Bundle for 5.0 includes the following products which are also supported for MySQL 5.1, and offered by the official MySQL site.</p>
<ul>
<li>MySQL Administrator 1.2</li>
<li>MySQL Query Browser 1.2</li>
<li>MySQL Migration Toolkit 1.1</li>
</ul>
<p><a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank"><strong>MySQL GUI Tools</strong></a></p>
<p>Enjoy being a <strong>MySQL Rockstar</strong>, with heightened coding abilities! Why not share your favorite MySQL coding tip or GU editor with our readers. <strong><em>What&#8217;s the most useful hack you&#8217;ve learned?</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://grindsmart.com/2009/12/vital-tips-for-working-with-mysql-databases/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 1/15 queries in 0.018 seconds using disk

Served from: grindsmart.com @ 2010-09-08 15:17:05 -->