|
| [MySQL] Ny bruger kan ikke åbne databasen Fra : Stefan Kristensen |
Dato : 17-11-07 15:36 |
|
Hej NG.
Jeg har installeret MySQL på en FreeBSD box og er rimelig ny i begge
dele. MySQL kører fint, og jeg kan fra et lille C++ program læse en
tabel via root brugeren.
Så har jeg oprettet en ny bruger med "CREATE USER cpp IDENTIFIED BY
'test';", alstå uden PASSWORD keyword'et.
Bagefter har jeg givet cpp nogle rettigheder: "GRANT ALL ON cppTest.* TO
'cpp'@'localhost';".
Når jeg kører det samme lille C++ program, får jeg følgende fejl:
[Failed to connect to database: Error: ]Access denied for user
'cpp'@'localhost' (using password: YES).
Teksten i [] er min egen, resten kommer fra mysql_error() funktionen.
Så vidt jeg kan se, kører jeg mysql Ver 14.12 Distrib 5.1.11-beta.
Hvad mangler jeg for at min test account kan få adgang til databasen?
Mvh
Stefan
| |
Peter Brodersen (17-11-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 17-11-07 15:44 |
|
On Sat, 17 Nov 2007 15:36:02 +0100, Stefan Kristensen <stefan@jems.dk>
wrote:
>Når jeg kører det samme lille C++ program, får jeg følgende fejl:
>[Failed to connect to database: Error: ]Access denied for user
>'cpp'@'localhost' (using password: YES).
>Teksten i [] er min egen, resten kommer fra mysql_error() funktionen.
>Så vidt jeg kan se, kører jeg mysql Ver 14.12 Distrib 5.1.11-beta.
>
>Hvad mangler jeg for at min test account kan få adgang til databasen?
Det er lidt et gæt, men jeg vil tro, at brugeren ikke skal forsøge at
logge ind med password. Det lader fejlmeddelelsen til at nævne, at han
forsøger at gøre. (using password: YES)
Måske der er skelnes i login-fasen mellem at ville logge ind med et
(tomt) password, og så at logge ind uden password.
--
- Peter Brodersen
Kendt fra Internet
| |
Stefan Kristensen (17-11-2007)
| Kommentar Fra : Stefan Kristensen |
Dato : 17-11-07 15:58 |
|
>> [Failed to connect to database: Error: ]Access denied for user
>> 'cpp'@'localhost' (using password: YES).
>
> Det er lidt et gæt, men jeg vil tro, at brugeren ikke skal forsøge at
> logge ind med password. Det lader fejlmeddelelsen til at nævne, at han
> forsøger at gøre. (using password: YES)
Ja, det virker uden password. Men er det ikke lidt underligt når jeg har
givet brugeren et password ved oprettelsen?
Stefan
| |
Peter Brodersen (17-11-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 17-11-07 17:43 |
|
On Sat, 17 Nov 2007 15:58:09 +0100, Stefan Kristensen <stefan@jems.dk>
wrote:
>Ja, det virker uden password. Men er det ikke lidt underligt når jeg har
>givet brugeren et password ved oprettelsen?
I din GRANT ALL angiver du ingen kodeords-begrænsning (med IDENTIFIED
BY...)
--
- Peter Brodersen
Kendt fra Internet
| |
Stefan Kristensen (17-11-2007)
| Kommentar Fra : Stefan Kristensen |
Dato : 17-11-07 18:57 |
|
>> Ja, det virker uden password. Men er det ikke lidt underligt når jeg har
>> givet brugeren et password ved oprettelsen?
>
> I din GRANT ALL angiver du ingen kodeords-begrænsning (med IDENTIFIED
> BY...)
Jeg er ikke helt med...
Jeg starter MySQL som root (tror jeg nok - starter bare med 'mysql').
Jeg opretter en ny bruger _med_ et password og granter denne bruger
nogle rettigheder - uden at angive et password. Nu har brugeren ikke
noget password?
Jeg prøver at grante med 'identified by' - Brugeren har stadig ikke
noget password?
Set password for - Brugeren har stadig ikke noget password?
Hvad sker der?
Bare for sjov prøvede jeg med mysql --user=cpp for derefter at set
password - Nu har cpp et password jeg kan bruge i programmet.
Så igen: Hvad gør jeg galt når jeg som root ikke får givet brugeren et
password?
Tak for hjælpen ind til videre
Mvh
Stefan
| |
Carsten Pedersen (21-11-2007)
| Kommentar Fra : Carsten Pedersen |
Dato : 21-11-07 10:16 |
|
Stefan Kristensen wrote:
> Hej NG.
>
> Jeg har installeret MySQL på en FreeBSD box og er rimelig ny i begge
> dele. MySQL kører fint, og jeg kan fra et lille C++ program læse en
> tabel via root brugeren.
> Så har jeg oprettet en ny bruger med "CREATE USER cpp IDENTIFIED BY
> 'test';", alstå uden PASSWORD keyword'et.
> Bagefter har jeg givet cpp nogle rettigheder: "GRANT ALL ON cppTest.* TO
> 'cpp'@'localhost';".
Og opretter dermed to forskellige brugere:
CREATE USER cpp IDENTIFIED BY 'test'
--> det samme som CREATE USER 'cpp'@'%' m. password
GRANT ALL ON cppTest.* TO 'cpp'@'localhost'
--> 'cpp'@'localhost' findes ikke, så oprettes som ny bruger uden
password.
Så du har nu to forskellige brugere oprettet i dit system.
Det er generelt en god ide at køre serveren med NO_AUTO_CREATE_USER
Mvh
/ Carsten
> Når jeg kører det samme lille C++ program, får jeg følgende fejl:
> [Failed to connect to database: Error: ]Access denied for user
> 'cpp'@'localhost' (using password: YES).
> Teksten i [] er min egen, resten kommer fra mysql_error() funktionen.
> Så vidt jeg kan se, kører jeg mysql Ver 14.12 Distrib 5.1.11-beta.
>
> Hvad mangler jeg for at min test account kan få adgang til databasen?
>
> Mvh
> Stefan
| |
Stefan Kristensen (21-11-2007)
| Kommentar Fra : Stefan Kristensen |
Dato : 21-11-07 22:17 |
|
> CREATE USER cpp IDENTIFIED BY 'test'
> --> det samme som CREATE USER 'cpp'@'%' m. password
>
> GRANT ALL ON cppTest.* TO 'cpp'@'localhost'
> --> 'cpp'@'localhost' findes ikke, så oprettes som ny bruger uden
> password.
>
> Så du har nu to forskellige brugere oprettet i dit system.
>
> Det er generelt en god ide at køre serveren med NO_AUTO_CREATE_USER
Ach so!
Det kigger jeg lidt nærmere på. Tak for hjælpen.
Mvh
Stefan
| |
|
|