24. juni 2001 - 22:10Der er
21 kommentarer og 1 løsning
brugere
Okay, jeg er nu ved at være pænt træt af det her.. jeg har efter lang tid fundet ud af hvordan jeg laver brugere, men hvordan laver jeg sådan at hver bruger KUN kan se sin egen database? (og jeg bruger phpmyadmin)...
Jeg er rimelig sikker på at du ikke kan lave det sådan at bruger kun kan se sin egen database. Derimod kan det sagtens laves således at brugeren kun kan bruge sin egen database - altså se tabeller, lave INSERT, UPDATE, SELECT.
Jeg bruger udelukkende user og db tabellerne når jeg skal sætte en bruger op. Brugeren oprettets i user tabellen med brugernavn og password. Host sættes normalt til localhost medmindre brugeren skal kunne connecte eksternt til databasen. Alle permissions sættes på N - medmindre brugeren skal kunne specielle ting som at genstarte serveren.
Herefter oprettes der en post i db tabellen med brugernavnet og navnet på databasen, samt host = % Alle permissions sættes Y pånær Grant og References - skal der være flere begrænsninger på adgangen, kan man jo sætte dem som man har lyst.
Endelig kan du selvfølgelig ... så nu lykkedes det mig lige at få nutella på alle fingrene ... du kan også bruge de andre tabeller til at lave mere udspekuleret adgang - sæt det dog så striks som muligt og vær varsom med at give grant privilege.
Sikken en smøre og så besvare det meste af det ikke dit spørgsmål :-)
Du skal sætte variablen safe_show_databases til ON. Det gør du ved at have følgende i enten /etc/my.cnf eller c:\\my.cnf (alt efter om du bruger *nix eller windows):
[mysqld] set-variable = safe_show_database=ON
Og så skal mysql genstartes for at ændringen træder i kraft. Derefter kan brugere kun se de databaser, de har adgang til.
defrost > det ser ud som om du har fat i noget der! :).. jeg kører Windows.. men når jeg har kopieret filen my-example.cnf til C:\\ og det sker der stadig ikke noget.. under [mysqld] stod der i forvejen:
Ups, sorry det var mig der fuckede up i det! Okay, nu kan jeg ikke se de andre databaser.. eller jeg kan i hvertfald ikke se hvad der er i dem, men jeg kan se hvilke databaser der findes.. kan det ændres?
*SS* Jep det kan du tro.. altså jeg bruger phpMyAdmin, så der kommer jo også en liste *S*.. men jeg har set på forskellige hosts (så som Azero), at med kommandoen show databases kommer der kun ens egen... any ideas? :)
Jep rettighederne skulle være perfekte.. altså, jeg kan heller ikke se hvilke tables der er i andre databaser end min egen, men jeg kan se hvilke databaser der findes...
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.