• MySQL用户管理


    MySQL之用户管理

    创建用户

    create user username@host;      5.7.17 不允许
    create user username@host identified by 'password';
    @'%'
    @ip
    @'network'

    说明:用户的信息保存在mysql数据库中的user表中,验证用户是否创建成功如下:

    select user,host,password from mysql.user;    

    用户权限

    权限分类

    USAGE                                             无权限,只有登录数据库,只可以使用test或test_*数据库
    ALL                                               所有权限
    select/update/delete/super/slave/reload           指定的权限
    with grant option                                 允许把自己的权限授予其它用户或者从其他用户收回自己的权限

    作用范围

    *.*                                     全库、全表(mysql.user)
    mysql.*                                  mysql库下所有表(某库中的所有表)(mysql.db)
    mysql.user                               mysql库中user表(单表)(mysql.table_priv)
    mysql.user.host                          mysql库中user表的host列(mysql.columns_priv)

    主机登录权限

    user@localhost                                    表示user只能在本地通过socket登录服务器
    user@192.168.0.1                                  表示user用户只能在192.168.0.1登录数据库服务器
    user@192.168.0.0/255.555.255.0                    指定某个子网的主机可以登录数据库
    user@%                                            表示user用户能在所有的机器上登录数据库服务器

    用户授权

    show grants; 查看用户权限
    grant 权限 on 库.表 to 用户@主机
    grant 权限(列1,列2,...) on 库.表 to 用户@主机
    
    mysql> grant select on db01.* to 'jack'@'10.1.1.0/255.255.255.0';
    mysql> flush privileges;
    
    mysql> grant update(name,math) on db01.t2 to 'jack'@'10.1.1.0/255.255.255.0';
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    
    mysql> grant all on *.* to 'zhang'@'10.1.1.254' identified by '123'
    mysql> flush privileges;
    注意:从MySQL
    5.7.6开始,不赞成使用grant修改密码。使用 ALTER USER来代替。 ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; ALTER USER USER() IDENTIFIED BY 'mypass'; 如果当前连接是匿名用户可以用该语句修改密码

    权限的保存位置

    mysql.user              所有mysql用户的账号和密码,以及对用户对全库全表权限(*.*)
    mysql.db                非mysql库的授权都保存在此(db.*)
    mysql.table_priv        某库某表的授权(db.table)
    mysql.columns_priv      某库某表某列的授权(db.table.col1)
    mysql.procs_priv        某库存储过程的授权

    回收权限:revoke

    mysql> revoke update,select on mysql.user from stu6@localhost;    --撤消指定的权限
    mysql> revoke all privileges,grant option from stu4@'%';       --撤消所有的权限

    删除用户

    mysql> drop user user01@'localhost';                              删除用户
    mysql> select user from mysql.user where user='user01';            验证用户是否删除成功
    mysql> drop user user;                                  默认删除该用户从任意主机登陆
    mysql> rename user u01@'instructor.example.com' to u001@'localhost';  重命名用户名
    mysql> show grants;                                                查看用户权限
    mysql> show grants for user02@'%';                              查看指定用户的权限 
    mysql> drop user ''@'rhel6.example.com';                        删除一个匿名用户
    mysql> delete from mysql.user where user='';                    删除mysql中的匿名用户
    mysql> delete from mysql.user where user='root' and host='::1';
    mysql> flush privileges;
    
    注意:如果tcp/ip登录,服务器端口不是默认3306,则需要加端口号
    问题:可不可以给一个新的用户授权?
    
    更改user02在所有机器上都能登录数据库.
    mysql> update mysql.user set host='%' where user='user02'; 
    mysql> flush privileges;
  • 相关阅读:
    2016第41周二
    2016第41周一
    2016第40周日
    svn冲突
    海量数据搜索
    网页爬虫的设计与实现(Java版)
    Eclipse中使用正则表达式搜索替换
    nodpad++正则替换
    DWR3.0 dwr 返回值(数组,集合,Map)
    自己用反射写的一个request.getParameter工具类
  • 原文地址:https://www.cnblogs.com/yanjieli/p/9789889.html
Copyright © 2020-2023  润新知