zoukankan      html  css  js  c++  java
  • mysql 用户权限管理的粗略认识

    1.创建新用户并使用grant赋予权限:

    CREATE USER 'z1'@'%' IDENTIFIED BY '123456'; #其中,'z1'@'%' 是指新建用户z1,使用该用户名可以从任何主机来连接数据库,'123456'是密码

    刚创建的用户默认是没有权限的,需要使用grant指令进行权限的授予,如下所示:

    grant指令完整格式:grant 权限列表 on 数据库名.数据表名 to ‘用户名’@’主机’ identified by ‘密码’ with grant option;

    数据库名.*代表库下所有的表;

    可使用“*”表示所有数据库或所有数据表,“%”表示任何主机地址。

    with grant option:这个选项表示该用户可以将自己拥有的权限授权给别人,可以不添加

    也可以使用grant指令在授权时修改密码,例如:grant select on *.* to z2@localhost identified by '111111' with grant option;但现在已经失效,不能用了

    权限列表可参考:https://blog.51cto.com/11555417/2160730,常见的有create/drop/select/delete等

    给用户赋权限:

    GRANT ALL PRIVILEGES ON *.* TO z1; #增加除Grant_priv以外的所有权限
    GRANT ALL PRIVILEGES ON *.* TO z1 WITH GRANT OPTION; #增加Grant权限

    关于远程登录的其他知识点:

    Host值
    User值
    匹配的连接
    %
    'z1'
    z1 可以从任何主机来连接
    %
    ''
    任何用户,可以从任何主机来连接
    %.loc.gov
    'z1'
    z1 可以从loc.gov域的任何主机来连接
    172.168.18.200
    'z1'
    z1 可以从172.168.18.200的ip地址的主机来连接
    172.168.18.%
    'z1'
    z1 可以从172.168.18 的网段的任何主机来连接

    2.查看用户权限:

    select * from userG;
    SHOW GRANTS FOR z1; #host值是%,只要输入用户名
    SHOW GRANTS FOR z1@localhost; #如果host值不是%,则需要输入host 

    3. Mysql用户权限回收:

    revoke指令格式:revoke 权限列表 on 数据库名.数据表名 from 用户名@主机;

    示例:

    revoke drop on *.* from test@localhost;#回收drop权限
    revoke update,insert on *.* from test@'%';#回收insert,update权限 

    4. 对账户重命名:

    rename user '旧用户名'@'旧主机' to '新用户名'@'新主机';

    示例:

    rename user z1@'%' to z2@localhost;

    5. Mysql用户密码修改:

    方法一:使用set password命令

    set password for '用户名'@'主机' ='新密码';
    #flush privileges;#在mysql5.7.28中不刷新权限,也立即生效了

    示例:

    SET PASSWORD FOR 'z2'@'localhost' ='7777';

    方法二:使用grant指令在授权时修改密码:

    grant select on 数据库名.数据表名 to 用户名@主机 identified by '新密码' with grant option;

    示例:

    grant select on *.* to z2@localhost identified by '111111' with grant option;#会有报警,意思是说后续mysql版本中会移除该修改密码的方式,可以使用 ALTER USER的方式代替。该方式失效

    方法三:运行mysqladmin脚本文件

    该文件一般在mysql安装目录下的bin目录中。进入该目录,根据一下两种具体情况输入命令(只有root用户有这个权限)。

    bin目录:/usr/bin,在该目录下有可执行文件mysqladmin

    (1)用户尚无密码:

    mysqladmin -u 用户名 password 新密码;

    (2)用户已有密码:

    mysqladmin -u 用户名 -p password 新密码; 回车后会提示输入旧密码
    举例:mysqladmin -u z2 -p password 8888

     执行后会有警告信息,不影响

    6.删除用户

    drop user '用户名'@'主机';

    参考:https://www.cnblogs.com/MrHSR/p/9809702.html

    https://www.cnblogs.com/MrHSR/p/9817735.html

    https://blog.51cto.com/11555417/2160730

  • 相关阅读:
    PL/SQL连接错误:ora-12705:cannot access NLS data files or invalid environment specified
    java 后台开发关键词解释
    架构、框架和设计模式关系(转)
    Web.xml配置详解
    SVN“验证位置时发生错误”的解决办法
    java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
    android EditText 默认情况下不获取焦点(不弹出输入框)
    android listview item取消按点击效果
    如何实现可动态调整隐藏header的listview
    eclipse 启动到loading workbench... 自动关闭
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/15324256.html
Copyright © 2011-2022 走看看