Uitleg van quiry

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johnny Reinders

Johnny Reinders

19/09/2013 21:43:13
Quote Anchor link
Besstee,

Kan iemand mij uitleggen wat .*. betekent in de volgende query en hoe ik deze dien te gebruiken bij mysqli.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
GRANT SELECT, CREATE ON *.* TO 'user'@'host' IDENTIFIED BY PASSWORD '1234' |
 GRANT ALL PRIVILEGES ON `db1`.* TO 'user'@'host'
 GRANT ALL PRIVILEGES ON `db2`.* TO 'user'@'host'


en klopt het dat CREATE ON ervoor zorgt date een database automatish word aangemaakt als deze er nog niet is?
 
PHP hulp

PHP hulp

17/05/2024 12:44:43
 
Eddy E

Eddy E

19/09/2013 21:51:03
Quote Anchor link
In die query betekent alles van alles.

En ongeacht welke driver je gebruikt: je gebruikt SQL.
Of dat nu via mySQL of mySQLi of PDO is. Queries blijf je hetzelfde uitvoeren.

Toevoeging op 19/09/2013 21:52:52:

Meer info: http://technet.microsoft.com/en-us/library/ms188371.aspx

(al is dat wel TransAct-SQL (wat dus niet helemaal SQL is)

Quote:
ON [ OBJECT :: ] [ schema_name ] . object_name
Specifies the object on which the permission is being granted. The OBJECT phrase is optional if schema_name is specified. If the OBJECT phrase is used, the scope qualifier (::) is required. If schema_name is not specified, the default schema is used. If schema_name is specified, the schema scope qualifier (.) is required.
Gewijzigd op 19/09/2013 21:53:22 door Eddy E
 
Johnny Reinders

Johnny Reinders

19/09/2013 22:24:47
Quote Anchor link
Okeoke bedankt voor de snellle reactie. Maar zou je me nog willen vertellen waar *.* voor staat? Als ik het goed begrijp maakt deze query dus 2 databases met rechten voor 1 gebruiker?
 
Erwin H

Erwin H

19/09/2013 22:51:40
Quote Anchor link
Deze query maakt geen enkele database aan, nog een tabel. Met een GRANT statement geef je bepaalde rechten aan een gebruiker. In dit geval geef je SELECT en CREATE rechten aan user op host. *.* geeft aan op welke database (voor de punt) en welke tabel (na de punt). Omdat hier twee keer een * staat geef je die user dus SELECT en CREATE rechten op elke database en elke tabel.

Daarna geef je nog dezelfde user alle rechten op databases db1 en db2 (en binnen die databases weer op alle tabellen).
 
Johnny Reinders

Johnny Reinders

20/09/2013 14:58:25
Quote Anchor link
Okee dat is een mooii duidelijke uitleg. Hier heb ik wat van gelleerd. Bedankt :D
 
John D

John D

20/09/2013 15:27:33
Quote Anchor link
Waarbij dan regel 2 en 3 overbodig zijn omdat je in regel 1 al ALLE rechten op ALLES uitreikt.
Eigenlijk moet je regel 1 weglaten en dus selectief granten (regel 2 en 3)
Verder is het ook aan te raden om de backticks `` weg te laten.
Gewijzigd op 20/09/2013 15:28:34 door John D
 
Erwin H

Erwin H

20/09/2013 15:44:43
Quote Anchor link
Niet waar John. In regel 1 zitten alleen de SELECT en CREATE rechten, maar niet DELETE, UPDATE etc. Regel 2 en 3 zijn dus nog wel degelijk nuttig.
Gewijzigd op 20/09/2013 15:45:02 door Erwin H
 
Johnny Reinders

Johnny Reinders

20/09/2013 19:54:58
Quote Anchor link
Als ik deze code in een query zet krijg ik de foutmelding dat er geen database gesellecteert is. Kan iemand mij hierbij helpen?
De code die ik nu in quiry heb is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
GRANT ALL PRIVILEGES ON database1.* TO $dbuser@$dbhost
 
Aad B

Aad B

20/09/2013 20:23:07
Quote Anchor link
Erwin H op 20/09/2013 15:44:43:
Niet waar John. In regel 1 zitten alleen de SELECT en CREATE rechten, maar niet DELETE, UPDATE etc. Regel 2 en 3 zijn dus nog wel degelijk nuttig.
Oeps, inderdaad. te snel en half gelezen. Excuus.
Gewijzigd op 20/09/2013 20:23:24 door Aad B
 
Erwin H

Erwin H

21/09/2013 09:38:29
Quote Anchor link
Johnny Reinders op 20/09/2013 19:54:58:
Als ik deze code in een query zet krijg ik de foutmelding dat er geen database gesellecteert is.

Voor je een query kan uitvoeren zal je altijd eerst een database moeten selecteren. In dit geval maakt het eigenlijk niet uit welke (aangezien je in de GRANT query aangeeft op welke database je iets wilt doen), maar desalniettemin kan je die query niet uitvoeren als je niet eerst een database selecteert.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.