zoukankan      html  css  js  c++  java
  • mysql创建用户的一些问题

      因为使用默认的root用户会有一些安全问题,可以创建一个新的用户,赋予它应有的权限。

     创建用户语句为:

    create user lkprof identified by 'abc123';
    

      传建一个用户名为lkprof的用户,用户密码为abc123。

    如果要限制在固定地址登陆,比如localhost 登陆,可以用下面语句:

    create user lkprof@localhost identified by 'abc123';
    

      给该用户授权,如何要把所有权限赋予用户(不建议),可以用下面语句:

    grant all privileges on *.* to lkprof;
    

      只赋予用户需要用的权限,可以用下面语句:

    grant select,insert,update,delete on *.* to lkprof@"%" Identified by "abc123";
    

      格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码",其中@“%”是可以在任何地址登录。

      更新mysql:

    flush privileges;
    

      退出mysql用新创建用户登录出现下面问题: 

      lkprof@ubuntu:~$ mysql -u lkprof -p
      Enter password:
      ERROR 1045 (28000): Access denied for user 'lkprof'@'localhost' (using password: YES)

      查看用户发现用户确实存在:

    mysql> select host,user,password from mysql.user;
    +-----------+------------------+-------------------------------------------+
    | host | user | password |
    +-----------+------------------+-------------------------------------------+
    | localhost | root | *4B17032983AB1859A30266285A14B27281D6288E |
    | ubuntu | root | *4B17032983AB1859A30266285A14B27281D6288E |
    | 127.0.0.1 | root | *4B17032983AB1859A30266285A14B27281D6288E |
    | ::1 | root | *4B17032983AB1859A30266285A14B27281D6288E |
    | localhost | | |
    | ubuntu | | |
    | localhost | debian-sys-maint | *EBB140FE106F6E280438A4901ADACF9426C3CDD5 |
    | localhost | phpmyadmin | *4B17032983AB1859A30266285A14B27281D6288E |
    | localhost | wordpress | *4DA3F78768A2A609E0CB551343C316C17EA5CDEE |
    | % | lkprof | *4B17032983AB1859A30266285A14B27281D6288E |
    +-----------+------------------+-------------------------------------------+
    10 rows in set (0.00 sec)

    google了一下发现原因,引用如下:

    其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。 
    这段话说的很清楚,因此执行 grant select,insert,update,delete on test.* to user@"localhost" identified by "password"; 
    退出后用lkprof登录,成功。

    如果想删除那些为空(匿名)的用户

    mysql> delete from mysql.user where user=''; 

    查看当前用户可以用:

    mysql>select user();

    也可以用:

    mysql> status;

  • 相关阅读:
    点击按钮在表格的某一行下,在添加一行(HTML+JS)
    13
    12 stark组件之pop,按钮,url,页面
    11 stark组件之delete按钮、filter过滤
    解决 AttributeError: 'ForeignKey' object has no attribute 're'
    360面经
    4 django篇
    0- 26个面试经典问题回答
    如何学习??
    LeetCode
  • 原文地址:https://www.cnblogs.com/lkprof/p/3098557.html
Copyright © 2011-2022 走看看