一:查看账号权限
Mysql 账户权限不足,查看mysql 账户权限
MySQL [(none)]> show grants for dev
-> ;
+---------------------------------------------------------------------------+
| Grants for dev@% |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dev'@'%' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `TESTDB`.* TO 'dev'@'%' |
| GRANT SELECT ON `TESTDB`.* TO 'dev'@'%' |
| GRANT SELECT, INSERT, UPDATE ON `monitor_logs`.* TO 'dev'@'%' |
+---------------------------------------------------------------------------+
4 rows in set (0.00 sec)
二:修改账号权限
GRANT命令建立新用户、设定用户密码、并增加用户权限。格式如下:
GRANT <privileges> ON <what> TO <user> [IDENTIFIED BY "<password>"] [WITH GRANT OPTION];
## 例如:
GRANT ALL PRIVILEGES ON neutron.* TO 'TESTDB'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON neutron.* TO 'TESTDB'@'%' IDENTIFIED BY '密码';
grant all on . to root@’%’ identified by '密码';
## 刷新权限
flush privileges;
TESTDB.* :表示TESTDB数据库中的所有表,授权之前 TESTDB 库要先创建好。如果用*.*表示所有库的所有表
'TESTDB'@'localhost' :表示创建的用户名TESTDB,@后面表示允许访问数据的客户端,'localhost' 表示本机,'%'表示所有主机
<privileges>是一个用逗号分隔的你想要赋予的MySQL用户权限的列表。你可以指定的权限可以分为三种类型:
1、数据库/数据表/数据列权限:
Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。
mysql>grant select,insert,delete,create,drop on *.* (或TESTDB.*其它库或表) to '用户名'@'localhost' identified by ‘密码’;
grant Alter on `TESTDB`.* TO 'dev'@'%';
flush privileges;
2、全局管理MySQL用户权限:
file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
3、特殊的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。