• MySQL知识整理2—用户管理和权限设置


     
    用户权限管理主要有以下作用: 1. 可以限制用户访问哪些库、哪些表 2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作 3. 可以限制用户登录的IP或域名 4. 可以限制用户自己的权限是否可以授权给别的用户
    • 查看用户
    • 创建用户
    • 授权用户
    • 删除用户
    • 设置与更改用户密码
    • 撤销用户权限
    1.查看用户
    查看用户并没有直接的SQL语句,而是进入 mysql数据库的user表(这个mysql库和user表都是一开始就有的),直接用 select * from user,来查看有什么用户
    use mysql;
    select * from user;
    

    可以导出形成CSV文件进行查看:
    如上图,列出数据库所有的用户及权限
    用户详情的权限列表请参考MySQL官网说明:
     
    2.创建用户
    CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
    • user_name:要创建用户的名字
    • host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填'localhost',如果允许从远程登陆,则填 '%'
    • password:新创建用户的登陆数据库密码,如果没密码可以不写。
    例:
    create user 'aaa' @ 'localhost' identified by '123456';
    //表示创建的新用户,名为aaa,这个新用户密码为123456,只允许本机登陆
    create user 'bbb' @ '%' identified by '123456';
    //表示新创建的用户,名为bbb,这个用户密码为123456,可以从其他电脑远程登陆mysql所在服务器
    create user 'ccc' @ '%';
    //表示新创建的用户ccc,没有密码,可以从其他电脑远程登陆
    

    可见创建了用户tom,通配符'%'表示可在远程登陆,无密码

    3.授权用户

    GRANT privileges on databasename.tablename to 'username'@'host';
    
    • privileges:表示要授予什么权力,例如可以有 select,insert,delete,update等,如果要授予全部权力,则填 ALL ;
    • databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。
    • 'username'@'host':表示授权给哪个用户。
    例:
    grant select,insert on zje.zje to 'aaa'@'%';
    //表示给用户aaa授权,让aaa能给zje库中的zje表 实行 insert 和 select。  
    grant all on *.* to 'aaa'@'%';
    //表示给用户aaa授权,让aaa能给所有库所有表实行所有的权力。   
    //再看用户列表,可以发现权限都变成 Y了。
    

    注意:用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上with grant option ;比如:

    grant all on *.*  to 'aaa'@'%' with grant option;

    4.删除用户

    命令:drop user 'user_name'@'host';  
    例:  drop user 'tom'@'%';  //表示删除用户aaa;
    

    5.设置与更改用户密码

    set password for 'username'@'host' = password('newpassword');
    如果是设置当前用户的密码:set password = password('newpassword'); 
    如:set password = password('123456');
    

    6.撤销用户权限

    revoke privileges on database.tablename from 'username'@'host';
    例如:revoke select on *.* from 'zje'@'%';  
    

    7.用户重命名

    rename user 'tom'@'%' to 'tomao'@'%';
    

    8.刷新权限

    flush privileges;
    
  • 相关阅读:
    Java Calendar 类的时间操作
    Java获取当前时间的年月日方法
    CentOS7使用firewalld打开关闭防火墙与端口
    myEclipse开发内存溢出解决办法myEclipse调整jvm内存大小java.lang.OutOfMemoryError: PermGen space及其解决方法
    springMVC3学习--ModelAndView对象(转)
    form总结
    linux命令: chown命令
    fail2ban 保护
    centeros iptable模板文件
    Beetl2.2使用说明书20151201
  • 原文地址:https://www.cnblogs.com/nctjlyh/p/10476135.html
Copyright © 2020-2023  润新知