Avatar billede dennism Nybegynder
19. august 2005 - 22:58 Der er 28 kommentarer og
1 løsning

mySQL: flere brugere med egen db

Jeg har mySQL installeret, og har kun en root-bruger. Hvordan opretter jeg flere bruer på serveren, hvor de kun har adgang til deres egen database. Hvis jeg laver en ny bruger med GRANT får de adgang til de samme databaser som root.
Avatar billede arne_v Ekspert
19. august 2005 - 23:03 #1
det afhænger da af hvordan du opretter dem

GRANT ALL PRIVILEGES ON *.* TO ...

giver til alle

GRANT ALL PRIVILEGES ON deresegendatabase.* TO ...

skulle gerne kun give dem rettigheder til deres egen database
Avatar billede dennism Nybegynder
20. august 2005 - 12:05 #2
Jeg har logget ind som root i phpmyadmin, og oprettet databasen "utroligt_dk".
Nu vil jeg gerne oprette en bruger med navnet "utroligt_dk", som kun har adgang til databasen "utroligt_dk".
Før brugte jeg:

GRANT ALL PRIVILEGES ON *.* TO 'utroligt_dk'@'localhost' IDENTIFIED BY 'kode' WITH GRANT OPTION;

Denne giver adgang til samtlige databaser på serveren. Hvordan laver jeg sådan, at denne bruger "utroligt_dk" kun har adgang til én database, nemlig "utroligt_dk"?
Avatar billede arne_v Ekspert
20. august 2005 - 12:10 #3
GRANT ALL PRIVILEGES ON utroligt_dk.* TO 'utroligt_dk'@'localhost' IDENTIFIED BY 'kode' WITH GRANT OPTION;

formoder jeg
Avatar billede dennism Nybegynder
20. august 2005 - 12:14 #4
Mener du ik:

GRANT ALL PRIVILEGES ON utroligt_dk TO 'utroligt_dk'@'localhost' IDENTIFIED BY 'kode' WITH GRANT OPTION;

?

Du har .* før TO..det skal vel ik være der?

Kan man ik oprette denne bruger, med en mysqlquery I PHP istedet?
Avatar billede arne_v Ekspert
20. august 2005 - 12:35 #5
jeg mener at syntaxen er database.tabelnavn

så utroligt_dk.* betyder alle tabelle ri databasen utroligt_dk

den sætning bør også kunne køres fra PHP omend det nok ville være
lidt "usædvaneligt"
Avatar billede dennism Nybegynder
20. august 2005 - 12:41 #6
Hvordan laver jeg sætningen i PHP? Kan jeg lave noget med dette:

exec("C:\\Programmer\\MySQL\\MySQL Server 4.1\\mysql --user=root --password=kode mysql");

Eller kan jeg opstille en normal query? I så fald, hvordan skal den se ud?
Avatar billede arne_v Ekspert
20. august 2005 - 12:43 #7
nej

du laver bare en helt normal:

mysql_query("GRANT ALL PRIVILEGES ON utroligt_dk TO 'utroligt_dk'@'localhost' IDENTIFIED BY 'kode' WITH GRANT OPTION");
Avatar billede dennism Nybegynder
20. august 2005 - 12:51 #8
Jeg har netop kørt følgende dokument:

<?
$server = "localhost";
$dbuser = "root";
$dbpasswd = "qEsfasuX";
$dbname = "mysql";

$connection = mysql_connect("$server","$dbuser","$dbpasswd") or die("Unable to connect to database");
mysql_select_db("$dbname", $connection) or die("Unable to select database");

mysql_query("CREATE DATABASE utroligt_dk;");

mysql_query("GRANT ALL PRIVILEGES ON utroligt_dk TO 'utroligt_dk'@'localhost' IDENTIFIED BY 'kode' WITH GRANT OPTION");
?>

Jeg har nu logget ind i phpmyadmin med "utroligt_dk" og kode "kode". Når jeg logger er der kun databasen "mysql" i venstre side, og trykker jeg på den, får jeg følgende fejl i main-framet:
#1044 - Access denied for user 'utroligt_dk'@'localhost' to database 'mysql'

Men mysql skal jo heller ik være i venstre side..der skal jo kun være utroligt_dk.

Ved du, hvad der er galt?
Avatar billede arne_v Ekspert
20. august 2005 - 12:54 #9
prøv lige

ON utroligt_dk.*
Avatar billede dennism Nybegynder
20. august 2005 - 12:56 #10
Ups. jeg havde glemt ".*" efter navnet - som vi snakkede om før.
Der er nu adgang til utroligt_dk, men databasen mysql er der stadig. Kan du forklare det?
Avatar billede arne_v Ekspert
20. august 2005 - 12:57 #11
måske kræver MySQL at der er adgang til den database, da den jo indeholder
oplysninger om serveren som sådan

prøv f.eks. at checke hvilken adgang der er
Avatar billede dennism Nybegynder
20. august 2005 - 12:59 #12
Hvor skal jeg checke det?
Avatar billede arne_v Ekspert
20. august 2005 - 13:09 #13
du har ikke installeret et af de mange MySQL management værktøjer ?
Avatar billede dennism Nybegynder
20. august 2005 - 13:11 #14
Nej, jeg har kun installeret mySQL-server programmet.
Avatar billede arne_v Ekspert
20. august 2005 - 13:16 #15
MySQL Administrator
PHPMyAdmin
SQLYog
etc.

gør altså den slags langt nemmere
Avatar billede dennism Nybegynder
20. august 2005 - 13:19 #16
Jeg har PHPmyAmin.. man hvordan kan jeg se i det, hvike adgange der er!?
Avatar billede arne_v Ekspert
20. august 2005 - 13:21 #17
se under priviliges
Avatar billede dennism Nybegynder
20. august 2005 - 13:25 #18
Under "Globale privilegier" står der "USAGE" ved "utroligt_dk". Er det forkert?
Avatar billede arne_v Ekspert
20. august 2005 - 14:37 #19
hm - jeg har slet ikke et USAGE priv

er der ikke et tool tip ?
Avatar billede dennism Nybegynder
20. august 2005 - 14:44 #20
HVad er et tool tip?
Avatar billede arne_v Ekspert
20. august 2005 - 14:46 #21
når du kører cursoren hen over det så kommer der en lille forklarende tekst
Avatar billede dennism Nybegynder
20. august 2005 - 15:07 #22
Der står "Ingen privilegier"
Avatar billede dennism Nybegynder
21. august 2005 - 12:36 #23
Kan du ik hjælpe, med at fjerne mysql-databasen?
Avatar billede arne_v Ekspert
21. august 2005 - 17:23 #24
hvis du ingen privs har - er det så et problem at den kan ses ?
Avatar billede dennism Nybegynder
21. august 2005 - 17:53 #25
Nej egentligt ikke, men kan det lade sig gøre, vil jeg gerne have den skjult..
Avatar billede arne_v Ekspert
21. august 2005 - 17:59 #26
Du kunne jo modificere PHPMyAdmin ...

:-)
Avatar billede dennism Nybegynder
21. august 2005 - 18:03 #27
Det må blive en anden god gang ;)

Smider du lige et svar?
Avatar billede arne_v Ekspert
21. august 2005 - 18:12 #28
ok
Avatar billede dennism Nybegynder
21. august 2005 - 18:13 #29
Tak for hjælpen
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