Avatar billede dank Nybegynder
19. maj 2002 - 14:00 Der er 6 kommentarer og
1 løsning

problemer med GRANT

Hey, Jeg arbejder med PHP/MySQL på en RH7.2 boks.

Jeg har følgende problem:

Jeg skal oprette en bruger til databasen og brugeren skal kun have adgang til $database

bruger=$username
database=$username

Jeg har forsøgt med følgende:

------------------------------

INSERT INTO mysql.user SET Host = 'localhost', User = '$username', Password = PASSWORD('$password'), Select_priv = 'Y', Insert_priv = 'Y', Update_priv = 'Y', Delete_priv = 'Y', Create_priv = 'Y', Drop_priv = 'Y', Reload_priv = 'Y', Shutdown_priv = 'Y', Process_priv = 'Y', File_priv = 'Y', Grant_priv = 'N', References_priv = 'Y', Index_priv = 'Y', Alter_priv = 'Y'

----------------------

Men så vidt jeg kan se så får brugeren adgang til alle databaser - hvilket ikke er meningen - han skal kun have adgang til sin "egen" database.

Er der nogen der kan hjælpe?
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 14:36 #1
Han vil altid kunne se navnene på de andre databaser. Siger du at han også kan se indholdet
af de andre databaser - fx bare tabelnavnene?
Avatar billede dank Nybegynder
19. maj 2002 - 19:36 #2
hmmmm.. Jeg har løst det.. Det er selvfølgelig fordi at alle de ovenstående Select_priv = 'Y' skal ændres til 'N' så har vedkommende ikke alle de muligheder :-D

Det var nok et dumt spørgsmål fra starten af - beklager denne tråd :)

Opret svar så får du lidt point for i det mindste at have forsøgt :)
Avatar billede dank Nybegynder
19. maj 2002 - 19:37 #3
INSERT INTO mysql.user SET Host = 'localhost', User = '$username', Password = PASSWORD('$password'), Select_priv = 'N', Insert_priv = 'N', Update_priv = 'N', Delete_priv = 'N', Create_priv = 'N', Drop_priv = 'N', Reload_priv = 'N', Shutdown_priv = 'N', Process_priv = 'N', File_priv = 'N', Grant_priv = 'N', References_priv = 'N', Index_priv = 'N', Alter_priv = 'N'

Samt

GRANT Select, Insert, Update, Delete, Create, Drop, Reload, Process, File, References, Index, Alter ON `$username`.* TO '$username'@'localhost'

Så spiller det hvis nogen anden nogensinde skulle komme med tilsvarende problem :-)
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 19:38 #4
Er du sikker? Vil vedkommende så ikke kunne bruge insert i de andre databaser. Du
skal nok lige kigge på hvordan tingene er sat op i DB-tabellen.
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 19:39 #5
okay - det lyder bedre. Nej, jeg har ikke gjort noget - ingen points
Avatar billede dank Nybegynder
19. maj 2002 - 19:43 #6
ok.. Men tak aligevel :)
Avatar billede invisibleman Nybegynder
22. maj 2002 - 11:58 #7
Jeg bruger normalt selv:

GRANT ALL ON database.* TO user@'%' IDENTIFIED BY 'password';

% kan så være 'localhost' istedet hvis man ønsker det :)

Ovenstående virker fint og der kan brugeren KUN se andre databaser vha. SHOW DATABASES men ikke hverken tabelnavne eller struktur osv.
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