On Friday, January 6, 2006 1129, [EMAIL PROTECTED] wrote:

>I agree with Chander and still recommend application-level
>database accounts, not one or more direct MySQL logins per
>user. That's how most databases storing data with complex
>business rules maintain their data integrity. The SQL data
>definition language is usually not complex enough to enforce
>certain common business relationships so we rely on the
>application the users interact with to do it for us. That means
>that most users DO NOT have their own private accounts with
>MySQL. The "permissions" are enforced programmatically by the
>application (usually with the help of one or more private
>tables, not actually part of the business data you are trying
>to protect).  

I had planned to enforce business rules in my application, but give each person 
their own account so that MySQL could enforce a second layer of security, but I 
had not been thinking of people trying to subvert the system by bypassing the 
application. I think I'll reconsider my design. Also, now that version 5 is 
out, I'll have to think about moving at least some of the rules into triggers 
so they can't be bypassed.

>Most applications require periodic updates anyway (new rules,
>new screens, requested changes, etc). It should be possible to
>enforce consistent upgrades by changing the application
>passwords during each update cycle. That way, you can make sure
>that v1.1.13 no longer connects while v1.1.15 or better still
>can. Depending on the complexity of your business rules and the
>ever-changing nature of business, having version specific
>application accounts may be the easiest option to ensure that
>the "rules-du-jour" are being properly followed.

Good point.

>There are various ways to obfuscate the passwords you use in
>various versions of each application. Do not leave your
>passwords in plain-text in any application leaving your direct
>supervision (as in a desktop rollout). Also, if the application
>and the database are using a networked connection on an open
>network, you should probably encrypt the link (SSL is built
>into the MySQL protocols). Even with that said I know that No
>program is un-crackable. All you need to achieve is reasonable
>security for the application and the sensitivity of your data.

I'm going to have to use SSL (or something similar) because plaintext passwords 
are not allowed on our network, but I haven't gotten that far in my planning.

>Shawn Green
> Database Administrator
> Unimin Corporation - Spruce Pine

Thanks for the input.

-- 
John Hoover
[EMAIL PROTECTED]
301-890-6932 (H)
202-767-2335 (W)



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to