help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sql-mode password display


From: Michael Mauger
Subject: Re: sql-mode password display
Date: Thu, 3 Mar 2005 20:51:20 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

rb writes:
> 
> When I use sql mode:
> 

I'm the current maintainer of sql-mode.  I'll assume that you are using
the latest version of sql.el (available at http://savannah.gnu.org/cgi-
bin/viewcvs/emacs/emacs/lisp/progmodes/sql.el).  Prior versions were
similar so most of this will apply.

> M-x sql-msql, then follow prompts, 
> 
> I get the interactive sql buffer which works very well for me. The only
> problem is that when I list the processes, the mysql process shows my
> password, and I would like to know if there is something I can do to
> conceal it?
> 
> rb <at> antonio 102% ps -ef | grep sql
>       rb      29562      29372  0 08:44:27 pts/4   0:00 grep sql
>       rb      29717      15897  0 08:43:34 pts/8   0:00
>       /usr/freeware/bin/mysql --user=rb --password=my_password
>       --host=sanmarco test
> 
> I was trying to find wheter there was a customizable variable to
> conceal/display password and with M-x customize-apropos, I discovered
> that the password was displayed in the customization buffer as well:
> 

The problem here is that mysql accepts the password as a 
command line parameter and the `ps' shows all command line
parameters.  

The alternative is to use the `--password' (or `-p') option without a 
value and allow `mysql' to prompt you for it.  The current version
omits the `--password' option entirely if `sql-password' is an empty
string.

Take a look at the function `sql-connect-mysql' (or `sql-mysql' in
older versions).  There is a chunk of code like this:

   (if (not (string= "" sql-password))
       (setq params (append (list (concat "--password=" sql-password)) params)))

Try changing it to:

   (if (not (string= "" sql-password))
       (setq params (append (list (concat "--password=" sql-password)) params))
     (setq params (append '("--password") params)))

and remove your sql-password customization.  You will now be required 
to enter your password each time you start sql-mysql.

I don't use mysql at all so I'm not sure if this is globally appropriate.
Is it possible to connect to mysql without a password at all?  Do we need
to distinguish between prompt me for a password and there is no password?

> Sql Password: Hide my_password
>    State: this option has been changed outside the customize buffer.
> Default password. More
> Parent groups: Sql
> 

Having the password visible in custom is not something that can be 
controlled (that I know of...).  With the above change, obviously 
this becomes moot.

> If I start an ineractive mysql session at the command line in an xwsh
> shell, I get the following (password not displayed):
> 
> rb <at> antonio 101% ps -ef | grep sql
>       rb      29598      29535  0 08:31:14 pts/6   0:00 mysql -h
>       sanmarco -u rb -p test
> 
> Also, working in shell-mode within emacs, to process a batch file, my
> password is displayed in the *shell* buffer, and is retained in the
> command history list.
> 
> >From Emacs shell buffer:
> 
> rb <at> antonio 98% mysql -vv -h sanmarco -u rb -p < dbs.sql > dbs.out0222
> mysql -vv -h sanmarco -u rb -p < dbs.sql > dbs.out0222
> Enter password: my_password
> 
> Within the shell, any other commands requiring a password (ssh, rlogin,
> su, etc), the password is properly not displayed.
> 

If you modify sql.el as described above, sql-interactive-mode should
capture the password prompt and ask for your password in the minibuffer.

> This is GNU Emacs 21.3.1. Thank you, sorry if there's an obvious or
> known solution...
> 
> rb

I hope this helps.  Let me know how it turns out.  If you have any other 
suggestions concerning mysql support please send them along.

-- Michael Mauger
(Please CC: mmaug <at> yahoo <dot> com because I don't follow this 
list carefully...)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]