MySQL用户管理

在mysql自带的mysql数据库中有4个表用于用户管理的
分别是: 优先级从高到低
user -> db -> tables_priv -> columns_priv

授权表

user: 该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段

db: #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段

tables_priv #该表放行的权限。针对:某一张表,以及该表下的所有字段

columns_priv #该表放行的权限,针对:某一个字段

1. 授权(创建)的语法

  • 为已有账户授权
    grant [权限的名称 select insert.... | all ] on 数据库.表名 to 用户名@'主机地址';
  • 创建+授权
    grant [权限的名称 select insert.... | all ] on 数据库.表名 to 用户名@'主机地址' identified by '密码';
    特点: 如果授权时 用户不存在 直接自动创建用户==>创建用户+授权
授予 scote 这个用户所有权限 在所有数据库所有表中
grant all on *.* to scote@"localhost"; 可以访问 所有库和表
grant all on day41.* to scote@"localhost";  可以访问day41库的所有表
grant all on day41.stu to scote@"localhost"; 可以访问day41库的stu表
grant select(id,name),insert(id,name) on day41.stu to scote@"localhost";
                      仅能查看和添加 day41库的stu表中的 id和name字段

授权的权限需要单独指出
在上面的语法后面加上with grant option;

with grant option 这个用户可以将他有的权限授予别的账户

2. 撤销权限

revoke 权限的名称 on 数据库.表名 from 用户名@"主机名" ;

revoke all on *.* from scote@"localhost";

同理撤销授权的权限也要单独指出

update mysql.user set  Grant_priv = "N" where user ="scote" and host = "localhost";

3. 刷新权限列表

变动过权限表以后需要重新读一遍授权表

flush privileges;

4. 删除用户

drop user 用户名@"主机地址";

你可能感兴趣的:(MySQL用户管理)