MySQL必知必会-第28章 安全管理

安全管理

1.访问控制

1)提供且仅提供用户所需的访问权限;
2)需要【创建】和【管理用户账号】,关于账号
a.尽量避免使用root账号;
b.应该创建多种账号,供【管理人员】、【开发人员】、【用户】使用;
3)目的不仅仅是防止用户恶意企图,也防止用户无意识的错误

2.管理用户
2.1 查看用户

所有用户的信息都存储在名为“mysql”的数据库中;

-- 1.切换数据库
use mysql;
-- 2.查看当前所有用户 这里前一个user是列名 后一个user是表名
select user from user;
2.2 创建用户
-- 1.创建一个用户的基本语法
CREATE USER 用户名 IDENTIFIED by '密码';
-- 2.对用户重命名
rename user 旧用户名 to 新用户名;
-- mysql5之前的版本需要使用update子句
update user set user=新用户名 where user=旧用户名;

【说明】
1)IDENTIFIED BY PASSWORD在存入表前对 密码/口令 进行加密;
2)也可以使用INSERT插入用户,但是不建议:“mysql”数据库很重要,insert可能会破坏它;
3)因此相对于直接用insert语句处理,用标记和函数处理这些表会更好;

2.3 删除用户
-- 删除用户基本语法
drop user 用户名;

【说明】
mysql5之前的版本只删除用户账号,不删除相关权限,因此需要使用revoke删除与账号相关的权限,然后drop user 删除账号;

2.4 设置用户权限
-- 1.查看某个用户有的权限
-- usage on *.*表示在任何数据库的任何表上都【没有任何权限】
-- 用户 = 用户名@主机名,默认主机名为: "%"
show grants for 用户名; -- grant usage on *.* to 用户名@主机名

授予用户权限
使用grant语句
1)给出要授予的权限;
2)给出在哪个数据库哪张表上的权限;
3)给出用户名;

-- 授予权限的基本语法
grant
select|insert|delete|update -- 要授予的权限,授予多个权限可用逗号隔开
on 数据库名.表名				-- 给出权限的数据范围
to 用户名;					-- 给出授予哪个用户
2.5 撤销用户权限
-- 撤销权限的基本语法
revoke
select|insert|delete|update -- 给出要授予的权限
on 数据库名.表名				-- 给出权限的数据范围
from 用户名;					-- 给出授予哪个用户

【说明】
1)格式上与授予权限类似,grant换成revoke,from换成to;
2)撤销权限要求撤销的权限必须存在,否则会出错;

2.6 更改用户口令
-- 基本语法
set password for 用户名 = password('新密码');
-- 不加 [for 用户名] 默认更改当前登录的用户的密码 也就是自己的密码
set password = password('新密码');
3.grant 和 revoke 控制层次

grant 和 revoke 可以在以下多个层次上控制访问权限:
1)整个服务器,使用grant all或revoke all;
2)整个数据库,使用ON 数据库名.*;
3)特定的表,使用 ON 数据库名.表名;
4)特定的列,猜测是使用 ON 数据库名.表名.列名;//待验证
5)特定的存储过程,ON PROCEDURE 存储过程名; 。//待验证
权限表一览

权限说明
show databases使用show databases
create使用create table
drop使用drop table
alter使用alter table
create temporary tables使用create temporary table
lock tables使用lock tables
index使用create index和drop index
insert使用insert
delete使用delete
update使用update
select使用select
FILE使用select into outfile 和 load data infile
create view使用create view
show view使用show create view
create routine使用create PROCEDURE
alter routine使用alter PROCEDURE和 drop PROCEDURE
execute使用call和存储过程
create user使用 create/drop/rename user 和 revoke all privileges
usage无访问权限
ALL除grant option外的所有权限
grant option使用grant 和 revoke
process使用show full processlist
reload使用flush
replication client服务器位置的访问
replication slave由复制从属使用
shutdown使用mysqladmin shutdown关闭mysql
super使用change master、kill、logs、purge、master、和set global,允许mysqladmin调试登录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值