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 | 无访问权限 |