maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #05920
Re: Set password for all users, regardless of host value
Am 05.09.20 um 10:37 schrieb Sergei Golubchik:
> Hi, Chris!
>
> On Sep 04, Chris Ross (cross2) wrote:
>> Hello there. We have scripts to restore credentials to MySQL
>> databases from external store. The mechanism that was in use,
>> however, stores usernames and passwords, without consideration of the
>> scope (host) of that auth record. In older systems, UPDATE mysql.user
>> SET password = PASSWORD(‘rawpassword’) WHERE user = ‘username’ worked,
>> updating it for all values of that user that might exist in the table.
>>
>> But, I’m not sure how to do this for MariaDB 10.5. Is there way to
>> form an “ALTER USER” statement such that it will set the password for
>> any and all userspecs that exist with the given username? We don’t
>> have that many, and I could iterate the known configurations with
>> “ALTER USER IF EXISTS”, but I worry that might miss things added in
>> the future.
>
> Yes, you can do an ALTER USER statement, something like
>
> for x in (select host from mysql.global_priv where user='username') do
> execute immediate concat('alter user ', 'username', '@`', x.host, '` identified ...and so on' );
> end for
wow is that ugly
> you can do an UPDATE too, like
>
> update mysql.global_priv set priv=json_set(priv, 'authentication_string', password(‘rawpassword’))
>
> this is rather fragile and of course not recommended.
well, why in the world was a clear structure replaced with some
json-like crap?
> But I think what you're doing is somewhat strange. You have multiple
> accounts with the same username and different hosts, and you want the
> same password for them all? Why do you have multiple accounts in the
> first place?
i guess beause not everybody likes % when a user should only have access
from 3 hosts - defense in depth
Follow ups
References