I've database yang dibuat, misalnya '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;
Sekarang saya bisa login ke database dari mana-mana, tetapi dapat't membuat tabel.
Bagaimana untuk memberikan semua hak akses pada database dan (di masa depan) tabel. Saya dapat't membuat tabel di 'mydb' database. Saya selalu mendapatkan:
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;
Ini adalah bagaimana saya membuat "Super User" hak (meskipun saya biasanya akan menentukan host).
Sementara jawaban ini dapat memecahkan masalah akses, WITH GRANT OPTION
menciptakan pengguna MySQL yang dapat edit hak akses dari pengguna lain.
HIBAH OPSI privilege memungkinkan anda untuk memberikan ke pengguna lain atau menghapus dari pengguna lain yang hak-hak istimewa yang anda miliki.
Untuk alasan keamanan, anda tidak harus menggunakan jenis akun user untuk setiap proses yang umum akan memiliki akses ke (yaitu website). Dianjurkan bahwa anda membuat user dengan hak basis data](https://stackoverflow.com/a/15707789/2370483) untuk jenis penggunaan.
Ini adalah pertanyaan lama tapi aku don't pikir jawaban yang diterima adalah aman. It's baik untuk menciptakan super user tapi tidak baik jika anda ingin memberikan hak akses pada database tunggal.
grant all privileges on mydb.* to myuser@'%' identified by 'mypasswd';
grant all privileges on mydb.* to myuser@localhost identified by 'mypasswd';
%
tampaknya tidak menutupi soket komunikasi, bahwa localhost
adalah untuk. WITH GRANT OPTION
hanya baik untuk super user, selain itu biasanya risiko keamanan.
Semoga ini bisa membantu.
Ini akan sangat membantu bagi beberapa orang:
Dari MySQL command line:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Sayangnya, pada titik ini newuser tidak memiliki izin untuk melakukan apa-apa dengan database. Pada kenyataannya, jika newuser bahkan mencoba untuk login (dengan password, password), mereka tidak akan mampu mencapai MySQL shell.
Oleh karena itu, hal pertama yang harus lakukan adalah untuk menyediakan pengguna dengan akses ke informasi yang mereka butuhkan.
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Tanda bintang dalam perintah ini merujuk ke database dan tabel (masing-masing) bahwa mereka dapat seperti ini perintah tertentu memungkinkan pengguna untuk membaca, mengedit, melaksanakan dan melakukan semua tugas di semua database dan tabel.
Setelah anda telah menyelesaikan izin yang anda inginkan untuk mengatur untuk anda pengguna baru, selalu pastikan untuk reload semua hak istimewa.
FLUSH PRIVILEGES;
Perubahan akan berlaku.
Untuk informasi lebih lanjut: http://dev.mysql.com/doc/refman/5.6/en/grant.html
Jika anda tidak nyaman dengan perintah line maka anda dapat menggunakan klien seperti MySQL workbench, Navicat atau SQLyog
1. Membuat database
CREATE DATABASE db_name;
2. Membuat username untuk database db_name
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';
3. Menggunakan database
USE db_name;
4. Akhirnya anda dalam database db_name dan kemudian mengeksekusi perintah seperti membuat , memilih dan memasukkan operasi.
SQL ini hibah pada semua database tapi hanya dasar hak-hak istimewa. Mereka're cukup untuk Drupal atau Wordpress dan kerapian, memungkinkan satu akun pengembang untuk proyek-proyek lokal.
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';
Bekerja untuk hak-hak istimewa pada skema :)
Opsional: setelah mypasswd
anda dapat menambahkan WITH GRANT OPTION
Saya bisa dapat membuatnya bekerja hanya dengan menambahkan GRANT OPTION
, tanpa yang selalu menerima izin ditolak kesalahan
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost' WITH GRANT OPTION;
Halo saya menggunakan kode ini untuk memiliki super user di 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;
dan kemudian
FLUSH PRIVILEGES;
Untuk memberikan semua priveleges pada database: mydb
untuk pengguna: myuser
, hanya menjalankan:
GRANT ALL ON mydb.* TO 'myuser'@'localhost';
atau:
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
The HAK istimewa
kata kunci tidak diperlukan.
Saya juga tidak tahu mengapa jawaban yang lain menyarankan bahwa DIIDENTIFIKASI OLEH 'kata'
diletakkan di akhir perintah. Saya percaya bahwa hal itu tidak diperlukan.