You *COULD* include the information in the my.cnf file under the [client] area, something like this:

[client]
user=bruce
password=brucesPassword

That would tell the client to use that unless something else is disabled.

Of course that needs to be saved in plain text in a plain text file somewhere where people could get to it, so it may not be much of an improvement...

However there are several areas that my.cnf can be stored, so there may be some opportunities here... Given that one of the places a valid my.cnf file can exist is the users home directory (where it would be called something like ~.my.cnf and is somewhat harder to see because of the leading dot) you could setup a user specifically for handling such tasks in your server's account management system. Probably avoid making such a user on a network user management system such as LDAP or NIS or anything, but you can build a local account for this user. Assign this user a home directory, and set permissions restrictions on the home directory and the .my.cnf file so other users can't access it. Then you could su to this user and create a crontab to execute your scripts... because you will be this user your mysql command line client would read your .my.cnf file and use that username and password unless told otherwise by the command line calling mysql.

That said I stress again... it is still a plain text file and the password is saved in readable text... if you forget to set enough permissions to prevent other users from accessing the file or something you can run into trouble. I wouldn't consider it "secure", but it's better than including the password in the scripts all over the place. You other users would need to get into this new phantom users home directory, find the file and read it... because the file is called .my.cnf it won't show on "ls" unless someone does an ls -a and then only if they have permissions to access that directory - given you will probably give the home directory in question drwx------ permissions only someone logged in as that user (or root) should be able to access the directory and see whats in it, and the file will need otbe readable by the user, so it needs at least - r-------- permission, probably not much more than that.

Best Regards, Bruce

On Jul 28, 2005, at 7:09 PM, Jeff Richards wrote:

Hi,

Is there a secure way of running mysql commands against the db from the
command line, or in some kind of secure batch mode, without making the
password totally visible? We need to procedurize things like "flush
tables with read lock", "unlock tables" etc. Is making the password
visible on the command line the only way?

Thanks,

Jeff

--
Jeff Richards
Consulting Architect
Openwave Systems Asia Pacific
+61 415 638757


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




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

Reply via email to