mysql权限管理

2018-07-07  本文已影响10人  黄二的NPE
  • 权限管理基本概念

  1. 我们可以把MySQL看做是一个工厂,db就是其中的一个个仓库,比如有A仓库,B仓库等等,而我们的表啊,索引啊什么的就是仓库里面的货物。
  2. MySQL有一套严格的权限管理制度,那什么是权限管理,为什么要有权限管理?MySQL的用户中,有些用户只需要查看MySQL数据,不需要往MySQL添加数据和删除数据,而有些用户不止可以看数据,还可以增加和删除数据,如果我们都给所有用户同样的权限,那么有些只需要看数据库的用户不小心误操作了,把数据库删除了怎么办?所以MySQL把权限进行细化,并把细化后的权限按需分配用户。(细化后的权限有:查询数据库,添加数据库,删除数据库,更新数据库,添加表,删除表...)
  3. 现在我们知道user的出现是为了权限的细化,但是我们再创建user的时候,有时候会发现user后面还会跟着@host,那这又是怎么回事呢?host是主机的意思,与MySQL打交道的多是一些特定的机器,这些机器有着特定的ip,我们可以限定某些ip的权限,比如限定内网ip才能对数据库进行操作,如果不这么做,可能某些不法分子得到了数据库的账号密码,然后就可以对数据库为所欲为了。
  • 用户管理

  1. 创建用户
    create user huang identified by 'Huang123!'
  2. 创建一个有特定主机的用户
    create user huang@10.10.123.1 identified by 'Huang123!'
  3. 修改密码
    alter user huang identified by 'Huang123@'
  4. 查看当前用户
    select user();
  5. 删除用户
    drop user huang
  6. 查询所有的用户(仅限于管理员用户)
    select * from mysql.user;
  • 权限管理

  1. 授予全部权限
    grant all privileges on *.* to huangzp
  2. 授予某个数据库,某个表,某个权限
    grant select on test.chatting_log_201702 to huangzp1;
  3. 回收某个权限
    revoke all privileges on test.chatting_log_201702 from huangzp1;
  4. 授权给某个未存在的用户并且创建用户
    grant all privileges on test.* to huangzp3@localhost identified by 'Huangzp123!';
  5. 授权给某个用户并且这个用户可以把权限授予他人
    grant select on test.chatting_log_201702 to huangzp3 identified by 'Huangzp3!' with grant option;
  6. 如果我们想看数据库中,db,tables的权限管理,可以用管理员用户查看
    select * from mysql.db
    select * from mysql.tables_priv
上一篇 下一篇

猜你喜欢

热点阅读