前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql-创建用户和授权

mysql-创建用户和授权

作者头像
py3study
发布2018-08-03 10:46:44
2.8K0
发布2018-08-03 10:46:44
举报
文章被收录于专栏:python3python3

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,其它的也行

blob.png
blob.png

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

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

blob.png
blob.png

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

blob.png
blob.png

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

blob.png
blob.png

表示:有所有的权限,除了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)

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

blob.png
blob.png

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

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

Query OK, 0 rows affected (0.00 sec)

blob.png
blob.png

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权限了(不推荐使用,很不安全)

blob.png
blob.png

取消权限

取消来自远程服务器的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查看

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

blob.png
blob.png

MySql备份命令行操作

代码语言:javascript
复制
# 备份:数据表结构+数据
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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档