第09章 权限和备份

一般情况下,数据库软件安装完毕后,都有存在一个超级管理员。例如MySQL的超级管理员是Root。但是,我们在应用程序中尽量不要使用超级管理员的身份去操作数据库。

MySQL用户权限管理主要以下内容:

第一,可以限制用户访问哪些库、哪些表。

第二,可以限制用户对哪些表执行增,删,改,查等操作。

第三,可以限制用户登录的IP或域名(对应host属性)。

第四,可以限制用户是否可以授权给其他用户。

以下是授权命令:Grant 权限列表 On 数据库名.表名 To 用户 其他选项

在其他选项中,我们可以设置用户密码,以及限制其登录IP等等。

我们实际执行以下授权命令:

grant insert,delete,update,select on test.* to richie@'%' identified by '123456';

授权“richie@%”用户对“test”数据库所有表的“增删改查”权限操作。

grant all privileges on test.* to richie@'localhost' identified by '123456';

授权“richie@localhost”用户对“test”数据库所有表的“所有”权限操作。

注意:%允许任意用户远程连接数据,localhost只能允许本地连接数据库。

授权完毕后,记得刷新一下MySQL的权限:

flush privileges;

接下来,我们可以查询一下用户权限:show grants;

也可以查看指定用户的权限:show grants for richie@%;

MySQL的权限数据被保存到了“mysql”的数据库中,里面的“user”表中就是用户信息。

使用select直接查询mysql.user表查看用户的全局权限

SELECT * FROM mysql.user WHERE user='richie'\G

最后是收回权限命令,收回前面授予test库中所有表的增删改查权限:

revoke insert,delete,update,select on test.* from richie@%;

或者也可以通过下面命令收回对test库中所有表的所有权限:

revoke all privileges on test.* from richie@localhost;

记得刷新一下MySQL的权限:

flush privileges;

最后讲解一下数据库的导入和导出,常用的命令就是:mysqldump

这个命令位于安装目录下的bin目录。

备份一个数据库

mysqldump -uroot -p123456 --databases student > D:/student.sql

我们去D盘查看一下

打开文件

导出表结构却不导出表数据,添加“-d”命令参数

mysqldump -uroot -p123456 -d student > D:/student2.sql

导出数据却不导出表结构,添加“-t”命令参数

mysqldump -uroot -p123456 -t student > D:/student3.sql

只导出“student_info”数据表

mysqldump -uroot -p123456 student student_info > D:/student_info.sql

使用mysql命令将导出的本地文件导入到指定数据库(数据库已经存在了)

CREATE DATABASE `student`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

先创建数据库,再执行导入命令

mysql -uroot -p123456 student < D:/student.sql

注意,这是 mysql 命令,而不是上面的 mysqldump 命令。

或者使用scource命令(数据库已经存在了)

mysql –uroot –p123456

先登录数据库

user student;

source D:/student.sql;

导入完毕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值