Wrong … at least one, and that’ll be the big O, as in Oracle. It’s just announced their buying Sun, and therefore MySQL, Java, Glassfish, Solaris, the whole box and dice. The Java aspect makes perfect sense, given Oracle bet the house on Java a decade ago (in much the same way the IBM acquisition made sense around Java). More compelling for Oracle is that they’ll own their own OS, possibly allowing great things like dtrace and zfs to escape the Sun CPPL (or whatever their licence is called), and be released under a Linux-friendly licence like LGPL or Apache.

And then there’s MySQL. At last, MySQL and InnoDB are owned by the same company. I think Oracle will use their market power and considerable ruthlessness to keep MySQL pegged in the “little web database that can” category, and use it to bludgeon Microsoft at the departmental/low-end. Of course, now all Larry Ellison and co. have to do is execute the post-acquisition merging of the two … they’ve shown they have some capability to execute such large mergers (think PeopleSoft, Seibel, Retek), but this one strikes me as a cross between a hand grenade and the proverbial Curate’s Egg. Good in parts, if you ignore the festering bits, and likely to blow up without warning 🙂


What do government systems and databases have in common? The concept of the separation of powers. In a Westminster-style democracy, the three arms of power – the executive, the legislature, and the judiciary – each have separate well defined powers that are forbidden to the other arms of government. For example (and something the crowd at Microsoft should remember), the power to determine punishments is exclusively the right of the judiciary … not criminally convicted monopolists who engage in “self help” :-). But I digress.

The same idea holds in database land. Separate powers and privileges out into discrete realms, and grant those well-defined powers to appropriate users. Works well for DB2, Oracle, SQL Server … but crashes into the safety barrier of poor design when we get to MySQL.

MySQL gets it right in the more-recently added powers, such as creating and executing routines, but its flakey bedrock is shown in the way basic object creation privileges are managed. Creating and dropping tables and databases are controlled by the same two privileges. Read that again – the create privilege spans tables and databases, and the drop privilege is equally-poorly scoped. What it means in practice is that developers who should be given a restricted authority to create objects can now create entire databases, and worse, the power to drop a table comes bundled with the “oops, was that the dev or production database I just wiped” ease of use feature. These should be separate powers … so let’s see how many other people have requested this in the past on the MySQL forums/bug site, and if in the unlikely event that count is zero, I’ll submit it and we’ll see what happens. Stay tuned to watch the fun.

Michael and I have just wrapped up our presentation to the MySQL 2007 User Conference in Santa Clara.  In the great tradition of automating my way to an early retirement, we covered how we go about mass deployment of MySQL servers in a totally automated way … including the data!  Michael’s put the slides up on his site, but as I usually put all of my effort into the dialogue with the audience, they might seem a bit brief.  Happy reading!

So says Guy Kawasaki, who’s just wrapped up his keynote here at the MySQL Conference.  He’s always an entertaining speaker, and to paraphrase him, I’m sure a thousand blogs have just bloomed with the impressions of the delegates here.

Completely deviating from that topic, I’ve split the technical content from my personal blog and will put it here, so people don’t have to endure my ramblings on topics that have no connection with technology, databases, content management, etc.  So you won’t have to put up with any more fascinating pictures of my left shoe in my vain attempts to prove my photo-journalistic qualities :-).

I’ll move the old posts about Oracle, DB2, SQL Server, MySQL, PostgreSQL and the rest here soon … honest!  I’ve been inspired!  If Howard can do it, surely I can too!