Avatar billede htxmand Nybegynder
23. marts 2004 - 16:54 Der er 11 kommentarer og
3 løsninger

konfiguration af phpmyadmin

Hej folkens.

Jeg har et problem, med at konfigurer phpmyadmin som jeg gerne vil have den. Efter at have kigget manualen igennem, og googlet det meste af natten, må jeg vist give op, og lade andre komme mig til hjælp.

Jeg skal have sat den op, således at flere brugere kan logge på. Hver bruger skal så kunne administrer deres egen database. Det er egentlig det hele.

Som det ser ud nu, logger den mig blot automatisk ind med root brugeren.
Og har forsøgt at bruge denne guide http://www.phpmyadmin.net/documentation/ men uden held.

Mit system er debian, og phpMyAdmin 2.5.6

Jeg er ny her på eksperten.dk, så jeg ved ikke om 100 points er nok. Eller om folk egentlig er ligeglade med disse.
Håber blot på lidt hjælp.
Avatar billede muddi Praktikant
23. marts 2004 - 16:59 #1
Du skal kigge på indholdet i config.inc.php

// Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['auth_type']    = 'config';

Hvis denne variabel er sat til config, betyder det at brugeren slet ikke skal logge ind. Hvis du sætter den til

$cfg['Servers'][$i]['auth_type']    = 'http';

vil der komme en boks, hvor brugeren skal angive et gyldigt brugernavn og password.
Der skal være tale om gyldig bruger, det vil sige en bruger der har adgang til mysql.
Avatar billede htxmand Nybegynder
23. marts 2004 - 17:03 #2
Det er netop her jeg hænger med snuden.
Jeg har nemlig sat den til http, og alligevel logger den ind med root.
Avatar billede muddi Praktikant
23. marts 2004 - 17:09 #3
Hvad mener du? Hvordan kan den logge ind med root?
Har du slettet overflødige root-konti fra mysql.user-tabellen?
Der skal kun være én der hedder root, og den skal have host = localhost og ikke %
Avatar billede muddi Praktikant
23. marts 2004 - 17:13 #4
Sørg for at din root-konto i tabellen user i databasen mysql har følgende felter udfyldt:

host: localhost
user: root
password: dit_hemmelige_kodeord

Kontroller også at der ikke i config.inc.php til phpmyadmin er angivet noget brugernavn eller password til root-kontoen!
Avatar billede htxmand Nybegynder
23. marts 2004 - 17:36 #5
Nu fik jeg det da til at virke. Det lader til at de ekstra brugere der var i mysql.user tabellen lavede fejlen.

Ved du hvordan jeg så opretter en bruger, således brugeren kun kan se sin egen database? for synes ikke umiddelbart jeg kan sætte det nogle steder under brugeren?
Men der skal jeg måske ind og bruge sql dump delen ?
Avatar billede sukos Juniormester
23. marts 2004 - 17:44 #6
For at http, skal du tillade at bruge .htaccess for det dir PhpMyadmin ligger i.
Prøv evt. at bruge cookie.

brugeren root skal jo også ha' et password, for at bruge login ordentligt.
og det er der er ikke pr. default.
Avatar billede htxmand Nybegynder
23. marts 2004 - 17:56 #7
sukos > hvis jeg ændre til cookie istedet for http kan jeg kun logge ind med root brugeren ?
Ellers får jeg bare følgende fejl:
#1045 - Access denied for user: 'root@localhost' (Using password: YES)

Jeg har også sat: $cfg['Servers'][$i]['user'] = '';
Avatar billede htxmand Nybegynder
23. marts 2004 - 18:04 #8
Efter at have skiftet til cookie, er den også ligeglad med hvad brugernavn jeg skriver. Hvis jeg f.eks. skriver flaf som brugernavn og f.eks. 111 som password logger den mig ind, fordi at passwordet 111 er det samme som det password root brugeren har ?
Avatar billede muddi Praktikant
23. marts 2004 - 20:25 #9
Du skal tilføje hver eneste bruger i tabellen mysql.db
feltet db er den database du vil give adgangsprivilegier til.
Jeg skal nok skrive mere detaljeret hvilke privilegier du skal give i morgen. Der er ihvertfald vigtigt ikke at give friere hænder for brugerne, end nødvendigt!

Her kan du finde meget mere om opsætning af brugere og deres adgangsprivilegier.
http://www.mysql.com/doc/en/User_Account_Management.html
Avatar billede sukos Juniormester
23. marts 2004 - 21:50 #10
Efter jeg har lagt Mysql ind, bruger jeg som det første en prompt til at gi' root et password:

http://exp.showsource.dk/460803/safemysql.jpg

Derefter laver en DB med PHPMyadmin, opretter en bruger og tildeler brugeren den DB som jeg lige har oprettet, med brugerpasword selvf.! :O)

dertil skal siges at det kun er localhost som server!
Altså ikke noget med at connecte "ude i byen"
Avatar billede sukos Juniormester
23. marts 2004 - 21:51 #11
Og root kan jo altid slette/oprette DB's og brugere.
Og root bruges aldrig i et script.
Kun command, eller PHPMyadmin
Avatar billede sukos Juniormester
23. marts 2004 - 21:52 #12
hmm, lyder lidt dobbelt! :O)
Avatar billede muddi Praktikant
24. marts 2004 - 10:37 #13
Sådan kunne en brugers (mads') adgangsprivilegier se ud for den database han skal have adgang til.
Det er indstillingerne i tabellen mysql.db

Host                    localhost
Db                        mads
User                    mads
Select_priv                Y
Insert_priv                Y
Update_priv                Y
Delete_priv                Y
Create_priv                Y
Drop_priv                Y
Grant_priv                N
References_priv            Y
Index_priv                Y
Alter_priv                Y
Create_tmp_table_priv    N
Lock_tables_priv        N

For at mads kan logge ind, skal han også oprettes i tabellen mysql.user
Her er det kun de første felter der skal udfyldes. Alle privilegier skal sættes til N,
da mads jo ikke skal have global adgang til andre databaser på serveren.

Host            localhost
User            mads
password        46de03a960577c91
Select_priv        N
Insert_priv        N
Update_priv        N
osv....

Læg mærke til at passwordet er krypteret!
Se hvordan du sætter et password i sukos indlæg fra klokken 21:50:11! :o)
Avatar billede Slettet bruger
24. marts 2004 - 11:46 #14
Hvis du stadig har problemer med at logge ind når du bruger cookie, kunne det måske skyldes at tiden ikke er indstillet korrekt på maskinen.

Når du logger ind med cookie, smider den jo en cookie på maskinen, men hvis nu din maskine står til at være i f.eks. år 2003, vil den slette cookien med det samme da den udløber, og derved vil brugeren ikke kunne logge ind.

Som muddi også har linket til igår kl 20:25:37 kan du så oprette en bruger således:

CREATE DATABASE foo;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON foo.* TO 'bruger'@'localhost' IDENTIFIED BY 'password';

Passwordet vil i dette tilfælde også blive krypteret.

Hvis brugeren også skal kunne logge på udefra, skal du så blot gentage kommandoen grant... men istedet for localhost bruge %

eks:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON foo.* TO 'bruger'@'%' IDENTIFIED BY 'password';
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester