Mysql用户结构,用户管理,权限管理

 一  Mysql用户管理
    1>用户概念  用户@host
       host 表示允许客户端连接的ip地址  
            举例 :localhost,192.168.6.10,192.168.6.*,%[代表所有ip都可以访问]
       username
    2>新建用户 
       create user 用户名@允许访问的主机名 identified by '密码';
       --如果不指定主机名 默认为 %
    3>删除用户    
       drop user 用户名@被允许的主机名
       --如果没有指定主机名 删除时可以不指定主机名 默认为%
       --如果指定了主机名  删除时 必须指定主机名 才能删除
    4> 修改密码
           第一种方式:登陆用户之后修改
          set password for 用户名=password('密码');
       第二种方式:登陆用户之后修改
           user mysql;
           update user for password=password('密码') where user='用户';
           flush privileges;
       第三种方式:不登陆用户,直接修改
          MySQLadmin -uroot -proot password 密码(不需要单引号引起来)
       第四种方式:
          无密码登陆
          修改my.ini在[mysqld]  
          添加一行 skip-grant-tables
二 权限管理
          分为 用户权限,数据库权限,表权限    
           权限名:在user表中 所有的列中包含_priv的列  去掉_priv就是权限名 
           grant all [privileges] on *.* to 用户名@主机名;--最常用


           grant all on *.* to 用户名@'主机名' identified by '密码'
    1>用户权限
       grant 权限名 on *.* to 用户名@主机名    [with grant option 表示可以将被授予的权限赋予给其他用户]
       --权限数据会被写入到mysql.user表中
   2>数据库权限
       grant 权限名 on 数据库名称.* to 用户名@主机名    [with grant option 表示可以将被授予的权限赋予给其他用户]
       --权限数据会被写入到mysql.db表中    
   3>表权限  
        grant 权限名 on 数据库名称.表名 to 用户名@主机名    [with grant option 表示可以将被授予的权限赋予给其他用户]
       --权限数据会被写入到mysql.tables_priv表中    
        
   权限的大小 用户权限>数据库权限>表权限   
    
                 
原文地址:https://www.cnblogs.com/t0404/p/10291058.html