Viac na
Udelenie **všetkých** oprávnení v databáze
Vytvoril som databázu, napríklad 'mydb'.
CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;
Teraz sa môžem prihlásiť do databázy odkiaľkoľvek, ale nemôžem'vytvoriť tabuľky.
Ako udeliť všetky práva na túto databázu a (v budúcnosti) tabuľky. Nemôžem'vytvárať tabuľky v databáze 'mydb'. Vždy sa mi zobrazí:
CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
587
3
Takto si vytvorím svoje "Super používateľské" oprávnenia (hoci normálne by som zadal hostiteľa).
DÔLEŽITÁ POZNÁMKA
Hoci táto odpoveď môže vyriešiť problém s prístupom,
WITH GRANT OPTION
vytvorí používateľa MySQL, ktorý môže upravovať oprávnenia iných používateľov.Z bezpečnostných dôvodov by ste tento typ používateľského účtu nemali používať pre žiadny proces, ku ktorému bude mať prístup verejnosť (napr. webová stránka). Odporúča sa, aby ste si vytvorili používateľa len s databázovými oprávneniami na takýto druh použitia.
Je to stará otázka, ale nemyslím si, že prijatá odpoveď je bezpečná. Je'to dobré na vytvorenie superužívateľa, ale nie je to dobré, ak chcete udeľovať oprávnenia v jednej databáze.
Zdá sa, že
%
nepokrýva komunikáciu so soketom, na ktorú je určenýlocalhost
. MožnosťWITH GRANT OPTION
je dobrá len pre superužívateľa, inak je zvyčajne bezpečnostným rizikom.Dúfam, že to pomôže.
Pre niektorých ľudí to bude užitočné:
Z príkazového riadku MySQL:
Bohužiaľ, v tomto okamihu nemá newuser žiadne oprávnenie robiť čokoľvek s databázami. V skutočnosti, ak sa newuser dokonca pokúsi prihlásiť (s heslom, password), nebude sa môcť dostať do shellu MySQL.
Preto je potrebné v prvom rade poskytnúť používateľovi prístup k informáciám, ktoré bude potrebovať.
Hviezdičky v tomto príkaze odkazujú na databázu a tabuľku (v uvedenom poradí), ku ktorým má prístup - tento konkrétny príkaz umožňuje používateľovi čítať, upravovať, vykonávať a vykonávať všetky úlohy vo všetkých databázach a tabuľkách.
Po dokončení oprávnení, ktoré chcete nastaviť pre nových používateľov, vždy nezabudnite načítať všetky oprávnenia.
Vaše zmeny budú teraz platné.
Ďalšie informácie nájdete na adrese: http://dev.mysql.com/doc/refman/5.6/en/grant.html
Ak vám nevyhovuje príkazový riadok, môžete použiť klienta, napríklad MySQL workbench, Navicat alebo SQLyog.