Mysql访问控制系统:
当客户端连接到服务器时,mysql访问控制有两个阶段:
1),连接验证:连接到数据库服务器的客户端需要一个有效的用户名和密码,
2),请求连接:连接成功后,对于客户端发出的sql语句,mysql会检查客户端是否具有足够的权限来执行语句。
- 用户管理都有那些操作?
查看用户的操作:
use mysql;-- 使用musql数据库
select * from user;-- 查询mysql数据库下的user表
创建用户:
-- 创建一个新用户dbadmin,密码pwd123
create user dbadmin@localhost identified by 'pwd123';
-- identified用于指定密码,@localhost表示只能从本地登录
select * from user; -- 查询新创建的用户是否存在
查看用户dbadmin的权限:
show grants for dbadmin@localhost;
-- usage 表示 dbadmin 用户帐户只能登录到数据库服务器,没有其他权限。*.* 中,前面的*表示数据库,后面的*表示表,*.*表示所有数据库中的所有表
用户授权:给新用户dbadmin授予超级管理员权限:
-- 授予全部权限
grant all on *.* to 'dbadmin'@'localhost' with grant option;
-- 查询权限
show grants for dbadmin@localhost;
授予超级权限就是dbadmin用户拥有数据库的所有表的权限,with grant option 表示允许用户想其他的用户授权。
也可授予部分权限:
CREATE USER rfc IDENTIFIED BY 'mypasswd';
GRANT SELECT, UPDATE, DELETE ON test.* TO rfc;
-- 创建一个 rfc 账号,密码为 mypasswd,该用户只能操作 test 数据库中的表,并 且只能查询、修改和删除表中的数据,如果用 rfc 用户在 test 数据库创建表就会报错
使用 rfc 用户连接 mysql,然后在 test 数据库中新建一张 emp 表,观察是否能够成功。 rfc 连接 mysql:
,rfc 的权限不能够在 test 数据库创建表,但是可以查询,
撤销权限:
revoke select on test.* from rfc;
show GRANTS for rfc
-- 撤销权限需要在超级管理员的账户下才能撤销
-- 撤销后发现rfc用户没有了查询权限
要从用户帐户撤销权限,必须具有 GRANT OPTION 权限和要撤销的权限;
注意授权是 grant…to…,而撤销权限是 revoke…from…。
- 连不上数据库都有那些原因?
1),数据库的密码错误
2),本地数据库未启动
3),客户端安装环境是否正常 - 数据库的维护都有那些操作?
- MySQL 提供了几个有用的语句,可以有效地维护数据库表。 这些语句使您能够分析,优化,检查和修复数 据库表。
1),查看表
use test;-- 使用test数据库
show tables;-- 查看表
show full tables;-- 显示表和类型
show tables like '%t%'-- 查询条件
2),分析表
analyze table user;-- 分析表
3),优化表
optimize table user;
- ,检查表
check table user;
5),修复表
repair table user;
- 数据库的备份?
- 备份数据库的重要性:
- 数据库备份很重要,没有备份,一旦出错只能跑路。要备份 MySQL 数据库,数据库首先必须存在于数据库 服务器中,并且您也可以访问该服务器。
- 使用最简单的方式就是右键您要备份的数据库,转存sql文件,结构和数据,到本地文件夹就ok。