|
| mysql igen-igen (jeg går snart amok) Fra : Tonni Aagesen |
Dato : 12-01-01 19:36 |
|
Hej,
Er der ikke en af jer, der ved en hulens masse om mysql på en debian 2.2, og
som vil tage mig i hånden og guide mig gennem opsætning af mysql.
Jeg har geninstalleret mysql-3.22.23-3, og hvad gør jeg så???
Mvh
Tonni Aagesen
| |
Tommy (12-01-2001)
| Kommentar Fra : Tommy |
Dato : 12-01-01 20:30 |
|
Tonni Aagesen wrote:
> Hej,
> Er der ikke en af jer, der ved en hulens masse om mysql på en debian 2.2, og
> som vil tage mig i hånden og guide mig gennem opsætning af mysql.
> Jeg har geninstalleret mysql-3.22.23-3, og hvad gør jeg så???
> Mvh
> Tonni Aagesen
Logger ind som root og skriver mysql
Hilsen tommy
| |
Tonni Aagesen (12-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 12-01-01 23:08 |
|
"Tommy" <webmaster@coolscreen.dk> skrev i en meddelelse
news:uWI76.76$Nq5.15896@news000.worldonline.dk...
> Logger ind som root og skriver mysql
Desværre, når jeg skriver mysql, får jeg følgende fejl:
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
Hvad så??
Mvh
Tonni Aagesen
| |
Tommy (13-01-2001)
| Kommentar Fra : Tommy |
Dato : 13-01-01 10:30 |
|
Tonni Aagesen wrote:
> "Tommy" <webmaster@coolscreen.dk> skrev i en meddelelse
> news:uWI76.76$Nq5.15896@news000.worldonline.dk...
> > Logger ind som root og skriver mysql
> Desværre, når jeg skriver mysql, får jeg følgende fejl:
> ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
> Hvad så??
> Mvh
> Tonni Aagesen
Har du givet den en password efter installationen, hvis ikke skal den ikke
have password.
hvis den har fået paasword skal det skrives enten som mysql -pxxxxxxx
eller bare mysql -p
hvor den så selv spørger efter passwordet.
Hilsen http://coolscreen.dk
| |
Tonni Aagesen (13-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 13-01-01 12:20 |
|
"Tommy" <webmaster@coolscreen.dk> skrev i en meddelelse
news:9eV76.300$Nq5.64848@news000.worldonline.dk...
> Har du givet den en password efter installationen, hvis ikke skal den ikke
> have password.
> hvis den har fået paasword skal det skrives enten som mysql -pxxxxxxx
> eller bare mysql -p
> hvor den så selv spørger efter passwordet.
Ok, jeg kan komme ind med "mysql -p mysql" og bare trykke på enter når den
siger "Enter password", men:
Hvordan ændre jeg password'et mysql til noget andet og mindre
gennemskueligt??
Jeg kan stadig ikke komme ind som mysqladmin??
Mvh
Tonni Aagesen
| |
N/A (13-01-2001)
| Kommentar Fra : N/A |
Dato : 13-01-01 13:12 |
|
| |
Tonni Aagesen (13-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 13-01-01 13:12 |
|
"Morten Guldager" <spamtrap@mogul.dk> skrev i en meddelelse
news:slrn960cb8.c0g.spamtrap@guldager.uni.to...
>
> >Jeg kan stadig ikke komme ind som mysqladmin??
>
> Så har du tabt...
Tak for hjælpen, nu har jeg eget password på mysql
Men kan det virkelig passe at jeg ikke kan komme ind som mysqladmin, eller
har jeg virkelig bare tabt??
Nedenunder kan du/I se hvad jeg har forsøgt, hvis det kan hjælpe.
Mvh
Tonni Aagesen
WANserver # mysql -p -u root mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 27 to server version: 3.22.32-log
Type 'help' for help.
mysql> update user set password=password('xxxxxx') where user = 'root';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> exit
Bye
WANserver # mysqladmin -u root -p reload
Enter password:
WANserver # mysqladmin -u root -p reload
Enter password:
WANserver # mysqladmin -p -u root xxxxxx
Enter password: <jeg får fejl om jeg trykker enter eller taster password>
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: NO)'
WANserver #
| |
Tonni Aagesen (13-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 13-01-01 13:31 |
|
"Tonni Aagesen" <delphin@worldonline.dk> skrev i en meddelelse
news:rNW76.1662$0P2.50518@news010.worldonline.dk...
> Tak for hjælpen, nu har jeg eget password på mysql
> Men kan det virkelig passe at jeg ikke kan komme ind som mysqladmin, eller
> har jeg virkelig bare tabt??
Øhh, her er det vist bare mig der er lidt dum
Jeg kan godt bruge mysqladmin som f.eks:
mysqladmin -u root processlist
Men det bekymrer mig lidt, at samme kommando virker, når jeg er logget ind
som alm. bruger. Burde den ikke bede om et password??
Er det fordi der ingen password er sat til mysqladmin??
Mvh
Tonni Aagesen
| |
N/A (13-01-2001)
| Kommentar Fra : N/A |
Dato : 13-01-01 20:38 |
|
| |
Tonni Aagesen (13-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 13-01-01 20:38 |
|
Hej Morten,
Mit "problem" er at alle har ubetinget adgang til mysql.
Jeg kan, logget ind som root, komme ind ved at skrive:
mysql
mysql -u root
mysql -u root -p (her spørger den om et password, og lukker mig kun ind hvis
angiver det password jeg brugte til den procedure du tidligere beskrev)
Logget som alm. bruger kan jeg komme ind ved at skrive:
mysql
mysql -u root
mysql -u root -p (her spørger den om et password, og lukker mig kun ind hvis
angiver det password jeg brugte til den procedure du tidligere beskrev)
Den sidste er jo ikke så mærkelig, men kan jeg ikke begrænse adgangen,
således at det kun root med dets password der kan logge ind?
Eller har alle der er logget på adgang til mysql??
Mvh
Tonni Aagesen
"Morten Guldager" <spamtrap@mogul.dk> skrev i en meddelelse
news:slrn9613jk.c0g.spamtrap@guldager.uni.to...
>
> Hvis den virker som du har skrevet ovenfor, altså uden -p, har
> du ikke fået sat password på din mysql-root bruger.
>
> Igen, mysqladmin er et program, ikke en brugerprofil.
>
> Det er mysql.User.Process_priv flaget der fortæller hvem der på lave
> en processlist med mysqladmin.
>
> Der er _ingen_ sammenhæng mellem brugere på systemniveau og bruger
> i mysql.
>
> Dog har UNIX root brugeren særlige rettighedder da det er hende der
> har startet mysqld og hende der kan ændre i databaserne.
>
> Hvis man har mistet sit mysql-root password kan man starte mysqld
> med --skip-grant-tables. Men det kan kun tilrådet at gøre i single
> user mode. Alle kan alt når mysqld kører med --skip-grant-tables.
>
> Når alle kan alt kan alle også sætte et nyt password for alle, incl.
> root.
>
>
> /Morten
| |
N/A (14-01-2001)
| Kommentar Fra : N/A |
Dato : 14-01-01 21:15 |
|
| |
Christian Madsen (14-01-2001)
| Kommentar Fra : Christian Madsen |
Dato : 14-01-01 21:15 |
|
> >Eller har alle der er logget på adgang til mysql??
>
> Ja, hvis de har et password til mysql. Hvis du ikke lige er logget ind som
> den bruger du vil være i mysql bruger option -u
Ja og dog ... hvis du ændrer filrettighederne så mysql kun kan eksekveres
af en bestemt person/gruppe, så har alle ikke adgang til mysql.
Christian Madsen
| |
N/A (14-01-2001)
| Kommentar Fra : N/A |
Dato : 14-01-01 23:30 |
|
| |
Christian Madsen (14-01-2001)
| Kommentar Fra : Christian Madsen |
Dato : 14-01-01 23:30 |
|
Morten Guldager wrote:
> >Ja og dog ... hvis du ændrer filrettighederne så mysql kun kan eksekveres
> >af en bestemt person/gruppe, så har alle ikke adgang til mysql.
>
> Kun hvis du samtidig sikrer dig at brugere ikke blot selv kan lægge en ny
> mysql client på maskinen.
Sandt nok - det skulle jeg nok have tilføjet før
> Mysql er designet til at sikkerheden ligger i tabellerne i mysql
> databasen. Navnlig i mysql.user.
Mit svar var også mere tiltænkt som en kommentar til hvorvidt alle brugere
kunne starte en mysql klient eller ej.
Men som du antyder, så er det nok mere eller mindre umuligt at håndhæve i
praksis.
Christian
| |
Tonni Aagesen (15-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 15-01-01 02:12 |
|
"Christian Madsen" <spam@rpm.dk> skrev i en meddelelse
news:93t9d2$1lm3$1@news.cybercity.dk...
> Morten Guldager wrote:
[snip]
En masse gode sager
[snap]
Problemet med andre brugere af serveren er i sig selv minimalt, da jeg er
den eneste bruger
Men, hvis jeg har en hjemmeside, hvor man skal kunne søge på og indsætte
data vha. php, kan der så være sikkerhedproblemer her???
Nævn endelig andre i denne sammenhæng også.
Mvh
Tonni Aagesen
| |
N/A (16-01-2001)
| Kommentar Fra : N/A |
Dato : 16-01-01 22:26 |
|
| |
Tonni Aagesen (16-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 16-01-01 22:26 |
|
"Morten Guldager" <spamtrap@mogul.dk> skrev i en meddelelse
news:slrn966lop.mjo.spamtrap@guldager.uni.to...
> Hvis du fumler risikerer du at andre får fat i dit mysql password.
> Dette password er du nemlig nødt til at have stående i dit php script.
>
> Jeg vil anbefale dig at du laver et par mysql brugere til din side, og
> så naturligvis en database.
>
> En DBA bruger og en web bruger.
>
> DBA beugeren bruger du når du skal oprette og ændre i tabel layout.
> Hun skal altså derfor som minimum have Select_priv, Insert_priv,
> Update_priv, Delete_priv, Create_priv, Drop_priv, Index_priv og Alter_priv
>
> Web brugeren har et simpelt password, da alle jo alligevel kan
> læse det ud af din php kode. Ihvertfald alle som kan få fingerene i den.
> Denne bruger skal sikkert ikke bruge andet en Select_priv, Insert_priv,
> Update_priv og Delete_priv
>
> Typisk vil du kune lade web brugeren komme fra local host, hvor i mod du
> måske gerne vil kunne udføre dba opgaver fra din lokale arbejdsstation
Jeg fandt denne linie på mysql.com:
mysql> INSERT INTO user SET Host='localhost',User='admin',
Reload_priv='Y', Process_priv='Y';
Vil denne kommando BÅDE oprette brugeren samt dens privilegier? Helt nede på
gulvet, kan jeg så skrive:
mysql> use mysql
mysql > INSERT INTO user SET Host='localhost',User='brugernavn',
Select_priv='Y', Insert_priv='Y', Update_priv='Y',
Delete_priv='Y';
- hvor "brugernavn" er et navn jeg selv vælger???
> Har du iøvrigt fat i sammenhængen mellem mysql.user og mysql.db
tabellerne?
Nej, det ville være synd at påstå, men forklar endelig
Tak for alt hjælpen.
Mvh
Tonni Aagesen
| |
Jakob Færch (16-01-2001)
| Kommentar Fra : Jakob Færch |
Dato : 16-01-01 23:39 |
|
In article <pi296.334$P13.24134@news010.worldonline.dk>, "Tonni
Aagesen" <delphin@worldonline.dk> wrote:
>
> Jeg fandt denne linie på mysql.com:
>
> mysql> INSERT INTO user SET Host='localhost',User='admin',
> Reload_priv='Y', Process_priv='Y';
>
> Vil denne kommando BÅDE oprette brugeren samt dens privilegier? Helt nede
> på
> gulvet, kan jeg så skrive:
Ja. Brugere eksisterer (så vidt jeg har forstået MySQL's system) kun som
et antal indgange i mysql.user-tabellen.
Det vil _også_ sige, at hvis brugeren 'admin' står der to gange, en gang
med password og en gang uden, kan han både logge ind med og uden
password.
| |
N/A (18-01-2001)
| Kommentar Fra : N/A |
Dato : 18-01-01 22:34 |
|
| |
Tonni Aagesen (18-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 18-01-01 22:34 |
|
"Morten Guldager" <spamtrap@mogul.dk> skrev i en meddelelse
news:slrn96ejke.rdu.spamtrap@guldager.uni.to...
[snip]
en masse fornuftige ting, som du kan en læse i tråden over denne
[snap]
Jeg har oprettet en bruger således:
mysql > INSERT INTO user SET Host='localhost',User='webbruger',
Select_priv='Y', Insert_priv='Y';
På min hjemmeside skal brugeren kun kunne hente og skrive data til en tabel,
så er ovenstående ikke tilstrækkelig??
Så hvis jeg har følgende i mit php-script, kan brugeren så komme i kontakt
med databasen:
$db = mysql_connect("localhost", "webbruger", "");
Mvh
Tonni Aagesen
| |
N/A (19-01-2001)
| Kommentar Fra : N/A |
Dato : 19-01-01 00:51 |
|
| |
Tonni Aagesen (19-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 19-01-01 00:51 |
|
"Morten Guldager" <spamtrap@mogul.dk> skrev i en meddelelse
news:slrn96ema7.rdu.spamtrap@guldager.uni.to...
> Jo det vil virke. Men hvis du har fumlet i din php kode vil
> en vandal også kunne lave inserts i tabeller i mysql databasen,
> f.eks. mysql.user.
>
> Derfor er det en dum plan at give privilegier til brugere alene.
Ok, vil så give mig et eksempel på hvordan jeg gør, altså helt fra bunden så
jeg undgår den risiko du beskriver.
Altså, jeg skal have oprettet en webbruger, der ikke må kunne ændre i f.eks.
mysql.user, hvad gør jeg??
På forhånd tak
Tonni Aagesen
| |
Christian Madsen (19-01-2001)
| Kommentar Fra : Christian Madsen |
Dato : 19-01-01 00:20 |
|
Tonni Aagesen wrote:
> > Jo det vil virke. Men hvis du har fumlet i din php kode vil
> > en vandal også kunne lave inserts i tabeller i mysql databasen,
> > f.eks. mysql.user.
> >
> > Derfor er det en dum plan at give privilegier til brugere alene.
>
> Ok, vil så give mig et eksempel på hvordan jeg gør, altså helt fra bunden
> så jeg undgår den risiko du beskriver.
> Altså, jeg skal have oprettet en webbruger, der ikke må kunne ændre i
> f.eks. mysql.user, hvad gør jeg??
Brugeren skal ikke have nogle globale privilegier sat i user tabellen .. du
kan fx. nøjes med at sætte privilegier i db tabellen, her kan du angive
hvilken bruger der må hvad i de(n) tabel(ler) som er tilregnet den
pågældende bruger
Følgende to kommandoer burde kunne gøre det ... udskift Password delen til
det du ønsker
INSERT INTO user (Host, User, Password, Select_priv, Insert_priv,
Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv,
Index_priv, Alter_priv) VALUES ('localhost', 'webbruger',
PASSWORD('webbrugers_password), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
'N', 'N', 'N', 'N', 'N', 'N')
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv,
Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv,
Index_priv, Alter_priv) VALUES ('localhost', 'db_til_din_webruger',
'webbruger', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '')
Hilsen
Christian
| |
Tonni Aagesen (19-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 19-01-01 01:31 |
|
"Christian Madsen" <spam@rpm.dk> skrev i en meddelelse
news:947trf$vv0$1@news.cybercity.dk...
> Brugeren skal ikke have nogle globale privilegier sat i user tabellen ..
du
> kan fx. nøjes med at sætte privilegier i db tabellen, her kan du angive
> hvilken bruger der må hvad i de(n) tabel(ler) som er tilregnet den
> pågældende bruger
>
> Følgende to kommandoer burde kunne gøre det ... udskift Password delen til
> det du ønsker
>
> INSERT INTO user (Host, User, Password, Select_priv, Insert_priv,
> Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
> Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv,
> Index_priv, Alter_priv) VALUES ('localhost', 'webbruger',
> PASSWORD('webbrugers_password), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
> 'N', 'N', 'N', 'N', 'N', 'N')
>
> INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv,
> Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv,
> Index_priv, Alter_priv) VALUES ('localhost', 'db_til_din_webruger',
> 'webbruger', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '')
Tak for dit hurtige svar. Jeg tror, jeg er med nu. På denne måde for
webbrugeren kun adgang til den database, jeg giver ham ret til?
Mvh
Tonni Aagesen
| |
Christian Madsen (19-01-2001)
| Kommentar Fra : Christian Madsen |
Dato : 19-01-01 00:45 |
|
Tonni Aagesen wrote:
>
> "Christian Madsen" <spam@rpm.dk> skrev i en meddelelse
[KLIP SQL statements]
> Tak for dit hurtige svar. Jeg tror, jeg er med nu. På denne måde for
> webbrugeren kun adgang til den database, jeg giver ham ret til?
Yep ... privilegier på database/tabel niveau kan fx. sættes i mysql.db
Hvad der angives gælder for alle tabeller i databasen ... Er det kun
enkelte tabeller du vil påvirke kan du forske lidt i mysql.tables_priv
tabellen ... jeg plejer nu kun at benytte mysql.db (nogle gange dog også i
kombination med mysql.host)
Christian
| |
N/A (19-01-2001)
| Kommentar Fra : N/A |
Dato : 19-01-01 15:04 |
|
| |
Christian Madsen (19-01-2001)
| Kommentar Fra : Christian Madsen |
Dato : 19-01-01 15:04 |
|
Morten Guldager wrote:
> On Fri, 19 Jan 2001 00:20:09 +0100, Christian Madsen wrote:
> >
[klip laaangt statement]
> Eller bare
>
> INSERT INTO user
> (Host, User, Password)
> VALUES ('localhost', 'webbruger', PASSWORD('webbrugers_password));
>
> I mysql.user er privililegierne nemlig default 'N'.
Ja, men nu havde jeg taget alle kolonner med for eksemplets skyld. Jeg er
udemærket godt klar over at det kan skrives/gøres kortere.
Desuden hvis man bruger en GUI tingest (fx. phpMyAdmin) så kunne det jo
være at man var i tvivl om hvad de poster der ikke var nævnt skulle sættes
til - så jeg tænkte hellere skrive for meget end for lidt.
Men hvis det skal foregå tekstbaseret, så vil jeg give dig ret i at det kan
være et mareridt at skrive lange statements flere gange - det gør man
sjældent mere end en gang
[klip - statement igen]
> Hvorfor giver du webbruger adgang til Create og Drop?
Nu ved jeg selvfølgelig ikke præcis hvad den webbruger må kunne, men jeg
kan da godt finde på eksempler hvor det er hensigtsmæssigt at lade en
bruger oprette en tabel i en database, og så slette den igen når sessionen
er slut.
> Jeg ville nøjes med
>
> INSERT INTO db
> (Host, Db, User,
> Select_priv, Insert_priv, Update_priv, Delete_priv)
> VALUES ('localhost', 'db_til_din_webruger','webbruger',
> 'Y', 'Y', 'Y', 'Y');
>
> For i mysql.db er privililegierne også default 'N'.
Tja se min kommentar ovenfor
Hilsen pilsen
Christian
| |
Tonni Aagesen (15-01-2001)
| Kommentar Fra : Tonni Aagesen |
Dato : 15-01-01 02:25 |
|
"Morten Guldager" <spamtrap@mogul.dk> skrev i en meddelelse
news:slrn963o3e.7r1.spamtrap@guldager.uni.to...
> Dem her forstår jeg ikke. Hvad sker der hvis du efterfølgende skriver
>
> use mysql;
> select host,user,password from user;
Så får jeg en fin lille tabel med følgende data:
localhost, root, krypteret password (tror jeg)
WANserver, root, krypteret password (tror jeg)
localhost, root, <blank>
WANserver, root, <blank>
> >Eller har alle der er logget på adgang til mysql??
>
> Ja, hvis de har et password til mysql. Hvis du ikke lige er logget ind som
> den bruger du vil være i mysql bruger option -u
Skal det forstås således, at hvis jeg er logget ind som "root" behøver jeg
ikke angive et password for bruge mysql som "root". Men hvis jeg derimod er
logget ind som f.eks. "tonni" og vil bruge mysql som "root" vil blive
afkrævet et password, og især omvendt??
Mvh
Tonni Aagesen
| |
|
|