MySQL用户及权限控制

MySQL的root用户权限最高,通常不会将root交给开发者使用。

创建一个用户

create user 用户名 identified by '密码';

修改用户名

rename user 旧用户名 to 新用户名;

修改用户密码

set password for 用户名 = password('新密码');

新口令必须传递到Password()函 数进行加密

删除用户账号

drop user 用户名;

查看用户权限

show grants for 用户名;
GRANT USAGE ON *.* TO `jack`@`%`

说明一下,上述的这种结果表示jack角色没有任何权限

给用户设置权限

grant 权限 on 数据库.表名 to 用户名;
-- 如果允许用户对数据库中所有表具备权限,则使用 数据库.* 来表示所有表
grant select on train.* to jack; # 给Jack授权,允许查询train数据库中所有表中数据
grant delete on train.bill to jack;# 给Jack授权,允许删除train数据库中bill表中数据

撤销用户权限

revoke 权限 on 数据库.表名 from 用户名;
# 例子如下
revoke select on train.* from jack;# 撤销jack角色对train数据库中所有表的查询权限
revoke insert on train.* from jack;# 撤销jack角色对train数据库中所有表的插入权限
revoke update on train.bill from jack;# 撤销jack角色对train数据库中bill表的更新权限

撤销用户全部权限:revoke all privileges,grant option from 用户名;

附录:权限表

权限 说明
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user,drop user,rename user,revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存储过程
file 使用select into outfile和load data infile
insert 使用insert
lock tables 使用lock tables
process 使用show full processlist
reload 使用flush
replication client 服务器位置的访问
replication slave 由复制从属使用
select 使用select
show databases 使用select databases
show view 使用show create view
shutdown 使用mysqladmin shutdown
super 使用change,master,kill,logs,purge,master,set global。还允许mysqladmin调试登录
update 使用update
usage 无访问权限
posted @ 2022-12-29 16:42  勤匠  阅读(139)  评论(0编辑  收藏  举报