zoukankan      html  css  js  c++  java
  • MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在

    MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在

     版权声明:本文为博主原创文章,欢迎大家转载,注明出处即可。有问题可留言,会尽快回复,欢迎探讨! https://blog.csdn.net/m0_37684310/article/details/78606426

    最近在工作中碰到这样一个问题,使用数据库脚本更新数据库,检测用户是否存在,不存在的话创建,分配库的权限,存在则跳过;

    第一个想到的就是类似删除表的判断DROP TABLE if EXISTS `test_table`;

    用DROP USER if EXISTS `test`;会报语法错误,ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if EXISTS `test`' at line 1;

    然后查找资料,据说MySQL 5.7以上版本支持此语法,创建新用户时检测用户是否存在怎么做,最终得到答案:

    -- 赋予testUser用户对所有表都没权限,即只有查看的权限,不能增删改查,而用户不存在则创建
    GRANT USAGE ON *.* TO 'testUser'@'%' identified by '123456';

    --删除用户
    drop user testUser@'%'; 
    flush privileges; 

    --再创建用户,将mysqltest数据库的权限给testUser用户
    create user testUser@'%' identified by '123456';
    grant all on mysqltest.* to testUser;
    flush privileges;

    总体逻辑就是:先创建再删除,再创建,

    1.当初次插入数据时,先创建用户testUser,再删除,然后再创建用户testUser

    2.当更新数据库时,先修改testUser用户的权限,然后删除,再创建用户testUser

  • 相关阅读:
    滚动 冻结 div demo
    JavaScript去除字符串两边空格trim
    window.showModalDialog以及window.open用法简介
    转: 分享我创业4年失败的经历
    [转]JavaScript break跳出多重循环
    showModalDialog 传值及刷新
    防止文字撑开表格,强制表格大小
    带记忆功能的表单
    checkbox 全选
    asp教程:关于jquery跨域彻底的解决方法
  • 原文地址:https://www.cnblogs.com/pejsidney/p/10221118.html
Copyright © 2011-2022 走看看