[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...)