[SQL] 简单新建(create)删除(drop\delete)权限(grant/revoke)修改(set\update)
一、前言
说起来 数据库(Structured Query Language),本站写过很多类似文章。
如:
甚至:我还做了一个项目:SQL 中用户建立与权限授予
然而,今天弄信息安全的时候一个 MYSQL 的问题瞬间把握弄懵了。我就在想如果碰到 利用社区开源代码进行二次开发的商业软件,那应该怎么办呢?有哪些具体的操作。

本文针对上述内容做了思考,总结以下内容。
二、思考
从商业软件的角度出发,一定是希望以最小的代价获取最大的回报。
- 利用 mairadb 开源代码完成核心部分,开发一个 GUI 外壳方便用户使用与隐藏伪装。
- 利用 phpmyadmin 现成网页端解决方案。
- MySQL 生态非常好,兼容性非常高。
三、检查
1、确定 my.ini 位置
首先找到 control panel -> 看到MYSQL服务 -> 右键属性确定my.ini位置

2、尝试登陆

发现无法登陆。(using password: YES)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password)
这种类型的提示是帐号密码不对或者帐号不存在的现象。
四、破解

1、添加 skip-grant-tables

在文件“底部”添加 skip-grant-tables 保存退出 -> 重启服务
BTW:网上说给 mysqld.exe 加 --skip-grant-tables 进行权限的略过,我并没有成功。
2、破解登陆
2-1、查询情况
cmd.exe -> mysql -h localhost -u root -p > 直接登陆
MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
2-2、新建用户
MariaDB [(none)]> create user 'root'@'%' identified by "example";
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]>
2-3、删除用户
MariaDB [(none)]> drop user 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
这样就没办法远程登陆(“%”)了
2-4、权限相关
MariaDB [(none)]> grant all privileges on *.* to 'rabbit'@'%' IDENTIFIED BY 'rabbit';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> revoke all privileges on *.* from 'root'@'%' ;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
- ALL PRIVILEGES- as we saw previously, this would allow a MySQL user all access to a designated database (or if no database is selected, across the system)
- CREATE- allows them to create new tables or databases
- DROP- allows them to them to delete tables or databases
- DELETE- allows them to delete rows from tables
- INSERT- allows them to insert rows into tables
- SELECT- allows them to use the Select command to read through databases
- UPDATE- allow them to update table rows
- GRANT OPTION- allows them to grant or remove other users' privileges
2-5、修改密码
MariaDB [(none)]> SET PASSWORD FOR 'rabbit'@'%' = PASSWORD('test');
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('other-way') where user = 'rabbit' and host = '%';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
希望大家都能熟练掌握。
[SQL] 简单新建(create)删除(drop\delete)权限(grant/revoke)修改(set\update)的更多相关文章
- SQL 触发器 新建时删除相同数据
--create alter trigger [dbo].[trigger_sqsj] on [dbo].[lctnrcrd] after INSERT as BEGIN ) id ),dlr,) d ...
- MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理
MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...
- oracle 中删除表 drop delete truncate
oracle 中删除表 drop delete truncate 相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名 ...
- SQL基础教程(第2版)第4章 数据更新:4-2 数据的删除(DELETE)
第4章 数据更新:4-2 数据的删除(DELETE) ● 如果想将整个表全部删除,可以使用DROP TABLE语句,如果只想删除表中全部数据,需使用DELETE语句.● 如果想删除部分数据行,只需在W ...
- 数据库的SQL基本用法 创建 删除 查询 修改
1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname 3.说明:备份sql server--- 创建 备份数据的 ...
- mysql用户密码修改,用户添加、删除及设置权限
一下的示例所用用户名和密码为:test,111111 Mysql密码修改: Mysql修改密码需要root的权限,先执行mysql -uroot -p(密码); 1)使用set password方式来 ...
- Sql Server来龙去脉系列 必须知道的权限控制核心篇
最近写了<Sql Server来龙去脉系列 必须知道的权限控制基础篇>,感觉反响比较大.这可能也说明了很多程序猿对数据库权限控制方面比较感兴趣,或者某些技术点了解的没有很透彻. 有些人看 ...
- 数据定义: CREATE、DROP、ALTER
CREATE DATABASE 句法 CREATE DATABASE [IF NOT EXISTS] db_name 数据库.表.索引.列和别名 中被给出. 如果数据库已经存在,并且你没有指定 IF ...
- 在SQL Server中快速删除重复记录
在SQL Server中快速删除重复记录 2006-07-17 21:53:15 分类: SQL Server 开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询 ...
随机推荐
- SOCKET, TCP/UDP, HTTP, FTP 浅析
SOCKET, TCP/UDP, HTTP, FTP (一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议. ...
- Codeforces Beta Round #9 (Div. 2 Only) D. How many trees? dp
D. How many trees? 题目连接: http://www.codeforces.com/contest/9/problem/D Description In one very old t ...
- socket的protocal参数
Documentation for socket() on Linux is split between various manpages including ip(7) that specifies ...
- Windows环境和Linux环境下Redis主从复制配置
Windows环境下和Linux环境下配置Redis主从复制基本上一样,都是更改配置文件.Windows环境下修改的配置文件是:redis.windows.conf.redis.windows-ser ...
- c# 解释器模式与sping.net表达式的结合应用(金融里经常需要用到公式,这个公式是抽象的需要自己解释)
.代码 using Spring.Expressions; using System; using System.Collections.Generic; using System.Linq; usi ...
- Nuget安装 Identity组件。
Install-Package Microsoft.AspNet.Identity.EntityFramework –Version 2.0.0(2.2.1) Install-Package Micr ...
- Levenshtein计算相似度距离
使用Levenshtein计算相似度距离,装下模块,调用下函数就好. 拿idf还得自己去算权重,而且不一定准确度高,一般做idf还得做词性归一化,把动词形容词什么全部转成名词,很麻烦. Levensh ...
- Android Studio真机测试失败-----''No target device found"
手机成功连接电脑,并且手机已经设置了开发者模式,但是启动真机还是失败,最后发现居然自己没有配置android sdk的环境变量,配置之后 如果还是不能启动,点击android studio上的tool ...
- 从Objective-C到Swift,你必须会的(三)init的顺序
Objective-C的构造函数吧,就最后return一个self.里头你要初始化了什么都可以.在Swift的init函数里把super.init放在前面,然后再初始化你代码里的东西就会报错了. 所以 ...
- js 根本没有“JSON对象”这回事! JSON对象——转
前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢. ...