为数据安全考虑需要为数据库分配权限,
创建账户并赋予赋予权限:
grant all privileges on *.* to ‘test‘@'localhost' identified by "passsword" with grant option;
grant 表示赋予权限
all privileges 表示所有权限(具体权限参考下表)
. 表示什么数据库什么表
test@localhost 允许test在本地登录,也可以设置特定的ip地址允许登录,其中‘%’表示任何IP地址都可以。
password 是创建账户的密码
查看权限:
show grants;
查看某个用户权限:
show grants for 'test'@'localhost';
取消用户的某个权限:
revoke delete on *.* from 'test'@'localhost';
删除用户权限:
select host,user,password from user;
重命名账户:
rename user 'test'@'localhost' to 'hello'@'localhost';
修改账户密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
刷新权限:
flush privileges;
权限 | 权限级别 | 权限说明 |
CREATE | 数据库、表或索引 | 创建数据库、表或索引权限 |
DROP | 数据库或表 | 删除数据库或表权限 |
GRANT OPTION | 数据库、表或保存的程序 | 赋予权限选项 |
REFERENCES | 数据库或表 |
|
ALTER | 表 | 更改表,比如添加字段、索引等 |
DELETE | 表 | 删除数据权限 |
INDEX | 表 | 索引权限 |
INSERT | 表 | 插入权限 |
SELECT | 表 | 查询权限 |
UPDATE | 表 | 更新权限 |
CREATE VIEW | 视图 | 创建视图权限 |
SHOW VIEW | 视图 | 查看视图权限 |
ALTER ROUTINE | 存储过程 | 更改存储过程权限 |
CREATE ROUTINE | 存储过程 | 创建存储过程权限 |
EXECUTE | 存储过程 | 执行存储过程权限 |
FILE | 服务器主机上的文件访问 | 文件访问权限 |
CREATE TEMPORARY TABLES | 服务器管理 | 创建临时表权限 |
LOCK TABLES | 服务器管理 | 锁表权限 |
CREATE USER | 服务器管理 | 创建用户权限 |
PROCESS | 服务器管理 | 查看进程权限 |
RELOAD |
服务器管理 | 执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限 |
REPLICATION CLIENT | 服务器管理 | 复制权限 |
REPLICATION SLAVE | 服务器管理 | 复制权限 |
SHOW DATABASES | 服务器管理 | 查看数据库权限 |
SHUTDOWN | 服务器管理 | 关闭数据库权限 |
SUPER | 服务器管理 | 执行kill线程权限 |
具体可以参考官方文档
https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html