发布时间:2018-06-14 20:33:31编辑:Run阅读(5090)
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
上一篇: mysql-多表查询
下一篇: mysql-视图
47604
45984
36909
34467
29079
25713
24565
19714
19245
17756
5564°
6155°
5690°
5737°
6704°
5483°
5484°
5988°
5965°
7295°