• MySQL 用户管理


    查看MySQL有哪些帐号
    select host, user from mysql.user;

    mysql帐号登录需要验证:用户名@客户端主机 + 密码;

    创建、修改、锁定、删除帐号
    用户名@主机 + 密码;
    主机名: localhost / 'db1.liuxw.com' / 192.168.18.128 / 192.168.18.128/255/255.255.0 / 192.168.18.% 或 192.168.18.1_
    %和_分别代表:%代表所有,_代表一个通配符;避免使用%,因为连接用户不确定;
    示例:create user 'zhangsan'@'localhost' identified by '123456';
    修改密码示例:alter user 'zhangsan'@'localhost' identified by '12341234'; #推荐使用
    set password for 'zhangsan'@'localhost'=password('12341234');

    alter user 'zhangsan'@'localhost' password expire; #让用户口令失效,修改后用户再次登录必须修改密码;
    alter user 'zhangsan'@'localhost' account lock; #锁定用户
    alter user 'zhangsan'@'localhost' account unlock; #解锁用户

    drop user 'zhangsan'@'localhost'; #删除用户,建议生产环境不要直接删除用户,可以先对帐号重命名,过段时间确认没有什么问题了,再执行drop
    remame user 'zhangsan'@'localhost' to 'zhangsan_bak'@'localhost';

    select user(), current_user(); #查看当前连接用户

    5.6版本安全加固
    delete from mysql.user where user!='root' or host!='localhost';
    truncate table mysql.db;
    flush privileges;

    -- ===================================================================
    授权 grant
    grant用于创建或是给现有的用户添加权限,语法:grant [权限list,insert,select...] on 授权对象 to 要创建或是授权的用户 identified by '密码';
    授权对象:
      所有对象,全局:*.*
      数据库级别:<db_name>.*
      表级别:<db_name>.<table_name>
    要创建或是授权的用户:‘user_name’@'hostname'
    密码:可选

    show privileges; #查看数据库有那些权限
    all 关键字,代表不包含对其它帐号授权以外的所有权限
    with grant option 关键字,代表可以给其它帐号授权
    如果现有系统使用root连接DB时,怎么样平滑回收权限?
    答:先创建一个 all with grant option权限的帐号,然后用这个帐号逐步回收root用户的权限
    查看用户权限的命令:
    show grants;
    show grants for current_user(); #当前连接用户
    show grants for 'user_name'@'hostname'; #查看其它用户

    授权原则:权限尽力少,用多少给多少。

    回收权限 revoke
    revoke用于撤销对用户的授权;语法:revoke [权限list] on 权限对象 from 帐号名称;

    密码忘记了怎么处理?
    方法1:启动时增加下面两个连接参数
    --skip-grant-tables #无需用户和密码登录,登录后禁止使用create user,grant,revoke,set password
    --skip-networking #禁止提供网络验证使用,只能本机连接进来
    然后利用:update mysql.user set authentication_string=password('新密码') where user='用户名' and host='主机';
    最后重启mysql

    方法2:利用拷贝user表文件方式  略


  • 相关阅读:
    Qt 让QLabel自适应text的大小,并且自动换行(转)
    /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)
    HDU 3605 Escape(最大流)
    HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
    HDU 2883 kebab (最大流)
    SPOJ 10606. Balanced Numbers (数位DP)
    HDU 3338 Kakuro Extension(最大流)
    HDU 3081 Marriage Match II (最大流+二分+并查集)
    HDU 2732 Leapin' Lizards(最大流)
    HDU 3709 Balanced Number ZOJ 3416 Balanced Number(数位DP)
  • 原文地址:https://www.cnblogs.com/shlc/p/10196481.html
Copyright © 2020-2023  润新知