Am'am creat baza de date, de exemplu '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;
Acum ma pot conecta la baza de date de peste tot, dar't crea tabele.
Cum pentru a acorda toate privilegiile pe care baza de date și (în viitor) tabele. Pot't crea tabele in 'mydb' baza de date. Întotdeauna am obține:
CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' WITH GRANT OPTION;
Acest lucru este cum am crea mea "Super-Utilizator" privilegii (deși nu în mod normal, ar specifica o gazdă).
În timp ce acest răspuns poate rezolva problema de acces, CU OPȚIUNE de finanțare creează un utilizator MySQL, care poate edita permisiunile de alți utilizatori.
OPȚIUNE de finanțare privilegiul vă permite să dea altor utilizatori sau elimina de la alți utilizatori aceste privilegii care te posedă.
Din motive de securitate, nu ar trebui să folosească acest tip de cont de utilizator pentru orice proces care publicul va avea acces la (de exemplu, un site web). Este recomandat să vă crea un utilizator cu doar privilegii de baze de date pentru acest tip de utilizare.
Aceasta este o întrebare veche, dar nu't cred că a acceptat răspunsul este în siguranță. L's bun pentru a crea o super-utilizator, dar nu este bun, dacă doriți pentru a acorda privilegii pe o singură bază de date.
grant all privileges on mydb.* to myuser@'%' identified by 'mypasswd';
grant all privileges on mydb.* to myuser@localhost identified by 'mypasswd';
%
pare a nu acoperi priză de comunicații, că "localhost" este pentru. CU OPȚIUNE de finanțare` e bun doar pentru super-utilizator, în caz contrar acesta este, de obicei, un risc de securitate.
Sper că acest lucru vă ajută.
Acest lucru va fi de ajutor pentru unii oameni:
De la MySQL command line:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Din păcate, în acest moment newuser are permisiuni de a face ceva cu baze de date. În fapt, dacă newuser chiar încearcă să vă conectați (cu parola, parola), ei nu vor fi în măsură să ajungă la MySQL shell.
Prin urmare, primul lucru de făcut este de a oferi utilizatorului acces la informațiile de care au nevoie.
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Asteriscuri în această comandă se referă la baza de date și de masă (respectiv) pe care le pot accesa—această specific comandă permite utilizatorului pentru a citi, edita, executa și de a efectua toate sarcinile în toate bazele de date și tabele.
După ce ați finalizat permisiunile pe care doriți să o setați pentru utilizatorii noi, să fie întotdeauna sigur de a reîncărca toate privilegiile.
FLUSH PRIVILEGES;
Modificările dvs. vor fi acum în vigoare.
Pentru mai multe informații: http://dev.mysql.com/doc/refman/5.6/en/grant.html
Dacă nu sunteți confortabil cu linia de comandă, atunci puteți folosi un client ca MySQL workbench, Navicat sau SQLyog
1. Creați baza de date
CREATE DATABASE db_name;
2. Creați numele de utilizator pentru baza de date nume_bd
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';
3. Utilizați baza de date
USE db_name;
4. În cele din urmă vă aflați în baza de date nume_bd și apoi executa comenzi cum ar fi crearea , selectați și introduceți operațiuni.
Acest SQL acordă în bazele de date ci doar de bază de privilegii. Ei're suficient pentru Drupal sau Wordpress și scrupulozitate, permite un cont de dezvoltator pentru proiecte locale.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,
INDEX, ALTER, CREATE TEMPORARY TABLES
ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON mydb.* TO myuser@localhost IDENTIFIED BY 'mypasswd';
Lucrări pentru privilegiile pe schema :)
Opțional: după mypasswd
puteți adăuga CU OPȚIUNE de finanțare`
Am putut capabil de a face să funcționeze doar prin adăugarea de OPȚIUNE de finanțare
, fără a primi întotdeauna permisiunea refuzat de eroare
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost' WITH GRANT OPTION;
Salut am folosit acest cod pentru a avea super-utilizator în mysql
GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE,
CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP,
EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE,
LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN,
SUPER
ON *.* TO mysql@'%'
WITH GRANT OPTION;
și apoi
FLUSH PRIVILEGES;
Pentru a accesa de la distanță la baza de date mydb numai
GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'192.168.2.21';
Pentru accesul la server de la distanță la toate bazele de date.
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.2.21';
Pentru a acorda tuturor privilegii pe baza de date: mydb
pentru utilizatorul: myuser
, doar executa:
GRANT ALL ON mydb.* TO 'myuser'@'localhost';
sau:
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
La "PRIVILEGII" de cuvinte cheie nu este necesar.
De asemenea, nu știu de ce alte răspunsuri sugerează că IDENTIFICATE PRIN 'parola'
fi pus pe finalul comenzii. Eu cred că nu este necesar.