zoukankan      html  css  js  c++  java
  • MySQL笔记——用户管理

    MySQL服务的默认端口是3306

    用户权限管理

    关于mysql数据库中的user表:

      user表是MySQL最重要的权限表之一,在用户登录就是匹配user表中的Host、User、Password这三个字段,当三个字段同时匹配时才能允许登陆。

      user表中以priv结尾的字段就是决定了用户的权限,这些字段默认都是N。

    关于mysql数据库中的user表和db表的区别:

      同样地,db表是MySQL最重要的权限表之一,它与user表的区别在于,user表的权限管理是针对所有数据库的某个用户权限,

    而db表的权限管理是针对某个数据库的某个用户权限。

      例如,user表中某用户的Select_priv字段取值为Y,那么该用户可以查询所有数据库中的表;

    如果该用户只设置了查询某数据库或者某数据中某个表的权限,那么该用户在user表中Select_priv字段就为N,而这个SELECT权限则记录在db表中。在db表中该用户的Select_priv字段就为Y。

      所以,用户获取权限是先根据user表,然后再根据db表的。

    关于FLUSH PRIVILEGES:

      当启动MySQL后,用户权限表都会加载到内存中,当修改权限表后,并不会更新内存中的权限表,使用FLUSH PRIVILEGES就是为了把权限表重新加载到内存中。从而不用重启MySQL服务,就可以让修改的权限表生效。

    新版的的mysql版本已经将创建账户和赋予权限的方式分开了,

      所以新建普通用户时,GRANT语句新建普通用户时不能同时使用IDENTIFIED BY语句设置密码,

      GRANT SELECT ON database*table TO 'user'@'host' IDENTIFIED BY 'password';

      

    新建普通用户:

    需要使用CREATE USER语句新建普通用户和设置密码,再用GRANT设置新用户的权限。

    查看当前登录用户是否有WITH GRANT OPTION权限和CREATE USER权限,

      SHOW GRANTS FOR user;

    使用CREATE USER新建用户,

      CREATE USER 'user'@'host' IDENTIFIED BY 'password';

    使用GRANT语句设置新用户授权,

      GRANT SELECT ON database.table TO 'user'@'host';

    如果只CREATE USER新建了用户,而没有设置用户授权,该用户不能登录mysql。

     

    删除普通用户:

    DROP USER 'user'@'host';

    使用SET语句修改普通用户密码,

      SET PASSWORD FOR 'user'@'host';

    使用REVOKE语句收回用户权限,

      REVOKE SELECT ON database.table FROM  'user'@'host';

  • 相关阅读:
    Python的subprocess子进程和管道进行交互
    python UnicodeEncodeError: 'ascii' codec can't encode characters 解决办法
    如何创建,增加swap
    nginx.conf配置
    15个极好的Linux find命令示例(二)
    15个实用的Linux find命令示例(一)
    vmware 虚拟机 mount :no medium found解决方法
    服务器上的iptables
    源码编译安装MySQL
    ORACLE参数文件
  • 原文地址:https://www.cnblogs.com/wholala/p/13575880.html
Copyright © 2011-2022 走看看