我建立了數據庫,例如'mydb'。 html
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;
如今我能夠從任何地方登陸到數據庫,但沒法建立表。 mysql
如何授予該數據庫和(未來)表的全部權限。 我沒法在'mydb'數據庫中建立表。 我老是獲得: web
CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin); ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
這是一個老問題,但我不認爲接受的答案是安全的。 這對於建立超級用戶頗有好處,但若是要在單個數據庫上授予權限則很差。 sql
grant all privileges on mydb.* to myuser@'%' identified by 'mypasswd'; grant all privileges on mydb.* to myuser@localhost identified by 'mypasswd';
%
彷佛不包括sockethost通訊, localhost
用於。 WITH GRANT OPTION
僅對超級用戶有利,不然一般存在安全風險。 shell
但願這能夠幫助。 數據庫
這對某些人有用: 安全
從MySQL命令行: 架構
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
遺憾的是,此時newuser無權對數據庫執行任何操做。 事實上,若是newuser甚至嘗試登陸(使用密碼,密碼),他們將沒法訪問MySQL shell。 socket
所以,首先要作的是爲用戶提供他們所需信息的訪問權限。 ide
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
此命令中的星號指的是它們能夠訪問的數據庫和表(分別) - 此特定命令容許用戶讀取,編輯,執行和執行全部數據庫和表中的全部任務。
完成要爲新用戶設置的權限後,請務必從新加載全部權限。
FLUSH PRIVILEGES;
您的更改如今將生效。
有關更多信息,請訪問: http : //dev.mysql.com/doc/refman/5.6/en/grant.html
若是您對命令行不熟悉,那麼您可使用MySQL workbench , Navicat或SQLyog等客戶端
您好我使用此代碼在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;
而後
FLUSH PRIVILEGES;
此SQL授予全部數據庫,但只授予基本權限。 它們足以用於Drupal或Wordpress,而且做爲一個精確的,容許一個開發者賬戶用於本地項目。
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';
適用於架構的權限:)
可選:在mypasswd
以後,您能夠添加WITH GRANT OPTION