mysql-创建用户和授权

mysql权限管理

我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作.

如何创建用户和密码

给当前的用户授权

移除当前用户的权限

如果你想创建一个新的用户,则需要以下操作

1 进入到mysql数据库下

mysql> use mysql;  # 选择数据库

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

2 对新用户增删改

(1) 创建用户

指定ip:192.168.11.88 的 用户:zhangsan 密码:123 登录

mysql> create user 'zhangsan'@'192.168.11.88' identified by '123';

Query OK, 0 rows affected (0.01 sec)

指定ip:192.168.11.% (%网段)的用户:zhangsan 密码:123 登录

mysql> create user 'zhangsan'@'192.168.11.%' identified by '123';

Query OK, 0 rows affected (0.00 sec)

指定任意ip的用户:zhangsan 密码:123 登录

mysql> create user 'zhangsan'@'%' identified by '123';

Query OK, 0 rows affected (0.00 sec)

(2) 删除用户

查看当前数据库的所有主机,用户

mysql> select host,user from user;

+---------------+-----------+

| host          | user      |

+---------------+-----------+

| %             | root      |

| %             | tao123    |

| %             | zhangsan  |

| 192.168.11.%  | zhangsan  |

| 192.168.11.88 | zhangsan  |

| localhost     | mysql.sys |

| localhost     | root      |

+---------------+-----------+

7 rows in set (0.00 sec)

删除用户

mysql> drop user 'zhangsan'@'%';  # 删除zhangsan用户从任意地址登录

Query OK, 0 rows affected (0.00 sec)

mysql> drop user 'zhangsan'@'192.168.11.%';  # 删除zhangsan用户从192.168.11.% 网段登录

Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from user;  # 再次查询,已经删除

+---------------+-----------+

| host          | user      |

+---------------+-----------+

| %             | root      |

| %             | tao123    |

| 192.168.11.88 | zhangsan  |

| localhost     | mysql.sys |

| localhost     | root      |

+---------------+-----------+

5 rows in set (0.00 sec)

(3)修改用户

mysql> rename user 'zhangsan'@'192.168.11.88' to 'lisi'@'192.168.11.88';  # to前面老的,后面为新的

Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from user;  # 已经更新

+---------------+-----------+

| host          | user      |

+---------------+-----------+

| %             | root      |

| %             | tao123    |

| 192.168.11.88 | lisi      |

| localhost     | mysql.sys |

| localhost     | root      |

+---------------+-----------+

5 rows in set (0.00 sec)

(4)修改密码

mysql> set password for 'lisi'@'192.168.11.88'=password('321');

Query OK, 0 rows affected, 1 warning (0.00 sec)

3 对当前的用户授权管理

查看权限

mysql> show grants for 'lisi'@'192.168.11.88';

+----------------------------------------------+

| Grants for lisi@192.168.11.88                |

+----------------------------------------------+

| GRANT USAGE ON *.* TO 'lisi'@'192.168.11.88' |

+----------------------------------------------+

1 row in set (0.00 sec)

授权 lisi用户仅对db1.author表有查询、插入和更新的操作

mysql> grant select,insert,update on db1.author to 'lisi'@'192.168.11.88';

Query OK, 0 rows affected (0.00 sec)

验证,使用lisi账号登陆,分别进行查询,插入,更新操作

这里使用第三方工具连接测试,使用的是Navicat,其它的也行

连接成功后,只显示db1数据库下的author表内容

原始数据就4条,利用工具---进行---增,改,查操作,步骤不演示,直接上结果

插入数据,更新数据,查询数据成功

删除数据失败,因为没有给删除权限

表示:有所有的权限,除了grant这个命令,这个命令是root才有的。lisi用户对db1下的author表有任意操作

mysql> grant all privileges on db1.author to 'lisi'@'%';

Query OK, 0 rows affected, 1 warning (0.00 sec)

由于之前设置了lisi账号的权限,需要删除,不然默认会以权限小的去执行

mysql> drop user 'lisi'@'192.168.11.88';  # 删除之前创建的

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;  # 刷新数据库权限

Query OK, 0 rows affected (0.01 sec)

验证:删除一行数据,删除成功

lisi用户对db1数据库中的文件执行任何操作,db1数据库下的所有表都有权限

mysql> grant all privileges  on db1.* to "lisi"@'%';

Query OK, 0 rows affected (0.00 sec)

lisi用户对所有数据库中文件有任何操作(相当于root权限,不建议使用)

注意:对同一个账号赋予权限的时候,一定要取消之前给的权限,不然会有问题

mysql> revoke ALL PRIVILEGES ON `db1`.* from 'lisi'@'%';  #移除之前lisi对db1数据库的所有权限

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for 'lisi'@'%';  # 查看lisi用户当前权限,GRANT USAGE ON *.* TO 'lisi'@'%'为默认权限

+----------------------------------+

| Grants for lisi@%                |

+----------------------------------+

| GRANT USAGE ON *.* TO 'lisi'@'%' |  <-- 为默认权限

+----------------------------------+

1 row in set (0.00 sec)

mysql> grant all privileges  on *.*  to "lisi"@'%';  # 赋予lisi所有数据库权限(相当于root权限)

Query OK, 0 rows affected (0.00 sec)

重新连接Navicat,查看

已经变成root权限了(不推荐使用,很不安全)

取消权限

取消来自远程服务器的lisi用户所有数据库的权限

mysql> show grants for 'lisi'@'%';  # 查看当前lisi用户的权限

+-------------------------------------------+

| Grants for lisi@%                         |

+-------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'lisi'@'%' |

+-------------------------------------------+

1 row in set (0.00 sec)

mysql> revoke ALL PRIVILEGES ON *.* from 'lisi'@'%';  # 取消lisi用户所有数据的权限

Query OK, 0 rows affected (0.00 sec)

重新连接Navicat查看

已经取消所有数据库的权限了

MySql备份命令行操作

# 备份:数据表结构+数据
mysqdump -u root db1 > db1.sql -p


# 备份:数据表结构
mysqdump -u root -d db1 > db1.sql -p

#导入现有的数据到某个数据库
#1.先创建一个新的数据库
create database db10;
# 2.将已有的数据库文件导入到db10数据库中
mysqdump -u root -d db10 < db1.sql -p

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Laoqi's Linux运维专列

Mysql5.7 二进制包安装(变化较大)

MySQL5.7.17版(二进制包) : 1.下载、解压二进制包 cd /usr/local/src/ wget http://mirrors.sohu.com...

2895
来自专栏VMCloud

【腾讯云的1001种玩法】构建企业级应用环境之数据层面优化(二)

在上一篇中我们讲到准备SQL基础环境改造,这一篇将继续讲述如何为应用提供高可用的底层数据层。

5770
来自专栏一个会写诗的程序员的博客

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决方案1.停止mysql

初次安装mysql,net start mysql,然后输入mysql -u root -p,

4023
来自专栏静下来

wordpress批量替换文章里面的内容

最近在采集一个资讯站,开始采集的时候并没有发现文章最后带有源站的链接注明,由于对方只是偶尔一篇文章才有,所以在采集的时候也忽略了。 最后之后去数据库批量替换掉...

3156
来自专栏上善若水

013 windows10 mysql的安装

Access denied for user 'root'@'localhost' (using password:YES) 解决方案 问题的解决

1363
来自专栏禁心尽力

Object Relational Mapping框架之Hibernate

hibernate框架简介:   hibernate框架就是开发中在持久层中应用居多的ORM框架,它对JDBC做了轻量级的封装。 ? 什么是ORM:Object...

2097
来自专栏酷玩时刻

Centos7.3 安装Mysql5.7并修改初始密码

http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

1894
来自专栏LIN_ZONE

mysql存储emoji问题

前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了

1086
来自专栏转载gongluck的CSDN博客

利用xinetd实现简单web服务器(镜像站)

浏览效果: ? linux服务器安装xinetd后,在/etc/xinetd.d/目录下创建xhttpd文件,并输入内容: service xhttpd { ...

4146
来自专栏程序员同行者

python 开发环境配置

1184

扫码关注云+社区