/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[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

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste