一般情况下,数据库软件安装完毕后,都有存在一个超级管理员。例如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;
导入完毕了。