zoukankan      html  css  js  c++  java
  • Mysql创建、删除用户、查询所有用户等教程,提升您的MYSQL安全度!

    建议您不要使用mysql的root账号来为您的web页面连接数据库,这可能会导致用户通过网页获取到您的数据库账号密码,存在严重的安全隐患。

    建议新建一账号,权限设置基本够用,然后使用那新建的账号来连接您的数据库。


    1、连接mysql

    mysql -uroot -p密码
    (-p后面无需空格,从-p开始即为密码开始)
    
    如果您的MySql在远程服务器上,需要加上 -hIP地址,如
    mysql -uroot -p123456 -h111.111.111.111
    
    

    2、查看MYSQL数据库中所有用户,仔细检查是否有未经您授权的用户存在
    SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;


    3、创建新用户(针对某个数据库的用户)

    格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

    如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

    grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
    注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。


    如果你不想user1有密码,可以再打一个命令将密码去掉。

    grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

    如果说用户原来存在,您只需

    grant select,insert,update,delete on mydb.* to user1@localhost

    权限列表

    grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';

      权限1,权限2,...权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

      当权限1,权限2,...权限n被all privileges或者all代替,表示赋予用户全部权限。

      当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表d权限。


    mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
    
    mysql>flush privileges;//刷新系统权限表
    格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 

    4、删除用户

     @>mysql -u root -p

     @>密码

     mysql>Delete FROM user Where User='test' and Host='localhost';

     mysql>flush privileges;

     mysql>drop database testDB; //删除用户的数据库

    删除账户及权限:>drop user 用户名@'%';

            >drop user 用户名@ localhost; 

    5、修改指定用户密码

      @>mysql -u root -p

      @>密码

      mysql>update mysql.user set password=password('新密码') where User="test" and Host="localhost";

      mysql>flush privileges;

    如删除sa这个用户,我前面设置host为localhost:

    drop user sa@localhost;  


    6、查询MySql,将结果输出到一个文件里

    select * from sms into outfile 'ss.txt';
    输出的文件默认在你的数据库目录。很多hacker就是利用你的网站漏洞,数据库等方式,添加一条记录,然后将该数据输出成文件,最后去访问执行它,然后获取您的管理员权限或者修改、删除你的服务器文件等。

    如:http://linux.chinaitlab.com/MYSQL/23132.html


    7、查看当前MySQL的所有变量,这个很重要,特别是配置的时候。

    show variables;
    查看数据库存放的目录?输入:

    show variables like 'datadir';

    比如你执行了6里面的命令,生成了一个ss.txt,你总的指导他在哪吧?执行上面那句你就知道了Mysql默认存放数据库的目录了,那么加上你数据库名就是你生成文件所在的路径了。


  • 相关阅读:
    3n+1问题
    判断x的m次方和y的m次方末尾三位数是否相等
    OpenJudge 计算概论1007:点评赛车
    整数划分问题【转】
    证明:平面内有5个整点,必有两个点连线的中点为整点【本资源整理自网络】
    欧几里德算法的证明
    导出本地和远程SVN项目, Export remote SVN repository
    Centos7的firewalld配置
    ESXi5.5下的Centos7虚机配置静态IP
    Dubbo消费端错误: ClassNotFoundException: org.apache.zookeeper.proto.WatcherEvent
  • 原文地址:https://www.cnblogs.com/xieyuan/p/3787349.html
Copyright © 2011-2022 走看看