我建立了数据库,例如'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