用户管理

MySQL中的用户,都存储在系统数据库MySQL中user表中
当我们做项目开发时,可以根据不同的开发人员,赋给他响应的MySQL操作权限
所以MySQL数据库管理人员(root),根据需要创建不同的用户,赋给相应的权限,供人员使用

  • 其中user表的重要字段说明:
  1. host:允许登录的“位置”,localhost表示该用户只允许本机登录,也可以指定ip地址;
  2. user:用户名;
  3. authentication_string:密码,是通过mysql的password()函数加密之后的密码。
  • 创建用户
    create user '用户名'@'允许登录位置' identified by 密码
    说明:创建用户,同时指定密码;'用户名'@'允许登录位置'表示用户的完整信息
  • 删除用户
    drop user '用户名'@'允许登录位置'
  • 用户修改密码
    修改自己的密码:
    set password = password('密码');
    修改他人的密码(需要有修改用户密码权限):
    set password for '用户名'@'登陆位置' = password('密码');
权限管理
  • 给用户授权
    grant 权限列表 on 库.对象名 to '用户名'@'登录位置' 【identified by 密码】
    说明:
  1. 权限列表,多个权限用逗号分开
    grant select on ...
    grant select,delete,create on ...
    grant all 【privileges】 on ... //表示赋予该用户在该对象上的所有权限
  2. 特别说明
    .:代表本系统中所有数据库的所有对象(表,视图,存储过程)
    库.*:表示某个数据库中的所有数据对象(表,视图,存储过程)
  3. identified by 可以省略,也可以写出。写出时:
    (1)如果用户存在,就是修改该用户的密码
    (2)如果该用户不存在,就是创建该用户
  • 回收用户授权
    revoke 权限列表 on 库.对象名 from '用户名'@'登录位置'
  • 权限生效指令
    如果权限没有生效,可以执行下面命令
    FLUSH PRIVILEGES;
  • 权限列表
权 限 作用范围 作 用
all 服务器 所有权限
select 表、列 选择行
insert 表、列 插入行
update 表、列 更新行
delete 删除行
create 数据库、表、索引 创建
drop 数据库、表、视图 删除
reload 服务器 允许使用flush语句
shutdown 服务器 关闭服务
process 服务器 查看线程信息
file 服务器 文件操作
grant option 数据库、表、存储过程 授权
references 数据库、表 外键约束的父表
index 创建/删除索引
alter 修改表结构
show databases 服务器 查看数据库名称
super 服务器 超级权限
create temporary tables 创建临时表
lock tables 数据库 锁表
execute 存储过程 执行
replication client 服务器 允许查看主/从/二进制日志状态
replication slave 服务器 主从复制
create view 视图 创建视图
show view 视图 查看视图
create routine 存储过程 创建存储过程
alter routine 存储过程 修改/删除存储过程
create user 服务器 创建用户
event 数据库 创建/更改/删除/查看事件
trigger 触发器
create tablespace 服务器 创建/更改/删除表空间/日志文件
proxy 服务器 代理成为其它用户
usage 服务器 没有权限