Kan iemand mij uitleggen wat .*. betekent in de volgende query en hoe ik deze dien te gebruiken bij mysqli.
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?
(al is dat wel TransAct-SQL (wat dus niet helemaal SQL is)
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.
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?
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).
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.
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:
GRANT ALL PRIVILEGES ON database1.* TO $dbuser@$dbhost
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.