MySQL 新建用户,为用户受权,指定用户访问数据库

1.登陆MySQLphp

mysql -u root -p

2.添加新用户(容许全部ip访问)mysql

create user 'test'@'%' identified by '123456';

#test:用户名,%:全部ip地址,123456:密码sql

3.建立数据库
CREATE DATABASE test_db  DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
4.为新用户分配权限
grant all privileges on `test_db`.* to 'test'@'%' identified by '123456';
#受权给用户test,数据库test_db相关的全部权限,而且该用户test在全部网络IP上都有权限,%是指没有网络限制
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON TUTORIALS.* TO 'zara'@'localhost' IDENTIFIED BY 'zara123';

#分配特定的权限数据库

5.刷新权限
flush privileges;

 

6. 修改用户的IP访问权限服务器

use mysql;
update user set host = '%' where user ='test';

7. 授予管理员权限网络

grant all privileges on *.* to 'dba'@'1.2.3.4' IDENTIFIED BY 'mypassword' with grant option;

授予用户dba访问全部库和表的权限,*.* 第一个*是全部的库,第二个*是全部的表ide

1.2.3.4是能够访问的IP地址,spa

with grant option是指容许用户dba,传递其拥有的权限给其余的用户线程

8. 授予只读权限code

grant select on *.* to 'select_only_user'@'%' IDENTIFIED BY 'your_password';

授予用户select_only_user 全部库和表的select 权限

9. 收回权限

revoke insert on *.* from 'someone'@'%';

收回用户someone的全部库和表的插入权限

revoke跟grant语法差很少,只须要把关键字 “to” 换成 “from” 便可,而且revoke语句中不须要跟密码设置。
注意:revoke能够回收全部权限,也能够回收部分权限。

10. 要废掉已经拥有的with grant option权限

revoke grant option on *.* from somebody;

11. 授予不少的权限

grant insert,select,update on test_db.test_tbl to someone@'localhost' identified by '123456';
grant 权限列表 on 数据库名.数据表名 to '用户名'@'主机' identified by '密码' with grant option;

 

授予someone用户insert,select, update等权限

12. 查看某个用户的权限

show grants for 用户名@主机;

13. 删除用户

drop user '用户名'@'主机';

14. 刷新权限

flush privileges;

 15. 

若是给一个用户设置的权限过大,除了上面使用revoke回收部分权限外,还可使用grant进行权限修改!
也就是说,grant不只能够添加权限,也能够修改权限(实际上就是对同一'用户名'@'ip'设置权限,以覆盖以前的权限);
grant修改后的权限将覆盖以前的权限!
那么问题来了:受权后的密码是密文形式保存的,若是记不住以前受权时的密码,那么怎样保证覆盖后的权限跟以前的权限一致?

莫慌!
grant受权操做中其实不只能够设置明文密码,也能够设置密文密码,以下:
1)grant 权限列表 on 库.表.* to 用户名@'ip' identified by "明文密码"
2)grant 权限列表 on 库.表.* to 用户名@'ip' identified by password "密文密码"

也就是说:
在grant重置权限的时候能够用查看的密文密码当作新的密码,而后去覆盖以前的权限,这就保证了修改先后的密码一致!

 

Mysql权限列表

权限 权限级别 权限说明
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 服务器管理 建立用户权限
proccess 服务器管理 查看进程权限
reload 服务器管理 执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限
replication client 服务器管理 复制权限
replication slave 服务器管理 复制权限
show databases 服务器管理 查看数据库权限
shutdown 服务器管理 关闭数据库权限
super 服务器管理 执行kill线程权限
相关文章
相关标签/搜索