基于Linux操作系统中的MySQL用户权限管理(三十二)

用户权限管理

目录

一、概述

二、用户权限类型

1、ALL PRIVILEGES

2、CREATE

3、DROP

4、SELECT

5、INSERT

6、UPDATE

7、DELETE

8、INDEX

9、ALTER

10、CREATE VIEW和CREATE ROUTINE

11、SHUTDOWN

12、GRANT OPTION

三、用户赋权

四、权限删除

五、用户删除

六、查看拥有哪些用户 

七、查看用户拥有哪些权限


一、概述

       数据库用户权限管理是数据库系统中非常重要的一个方面,它用于控制不同用户访问和操作数据库的权限范围。数据库用户权限管理可以保护敏感数据和数据库结构,确保只有被授权的用户才可以操作和使用数据库,防止数据被修改或泄露,并最大程度地保证数据库的安全。

二、用户权限类型

实验前提条件:

创建用户a1

create user 'a1'@'%' identified by '123123.coM';

       这个命令是用来在MySQL数据库中创建一个名为'a1',同时允许从任何主机(%)使用任何IP地址连接到该用户。该用户的密码为'123123.coM'。 

 使用root用户登录赋予a1用户如下权限并进行验证:

1、ALL PRIVILEGES

       拥有该权限的用户可以执行所有数据库的所有操作,包括创建/删除/修改数据库和表、执行 SELECT/INSERT/UPDATE/DELETE 等语句。

grant all privileges on aaa.* to 'a1'@'%' identified by '123123.coM';

 每次赋予权限后记得刷新配置,养成良好习惯

flush privileges;

 切换到a1用户检查是否有权限进行如下操作:

mysql -ua1 -p123123.coM

 验证创建数据表命令

create table aaa(
id int null,
name char(50),
age int null
);

 验证修改数据表命令

alter table aaa rename to bbb;

 执行insert命令

insert into bbb(id,name,age) values
(1,'zn',27),
(2,'zx',25);

 

 执行update命令

update bbb set name='zkx' where id=2;

 

 执行select命令

select * from bbb;

 

执行delete命令

delete from bbb where id=2;

 

删除数据表命令

删除数据表但是保留框架(表结构)命令

delete from bbb;

删除数据表 

drop table bbb;

 

2、CREATE

       拥有该权限的用户可以创建新数据库和表。

grant create on aaa.* to 'a1'@'%' identified by '123123.coM';

 创建数据表

create table aaa(
id int,
name char(10)
);

 

删除数据表

drop table aaa;

 这个错误提示意味着用户'a1'@'localhost'没有权限执行DROP命令,用于删除表'aaa'。

delete from aaa;

  这个错误提示意味着用户'a1'@'localhost'没有权限执行DROP命令,用于删除表'aaa'。

3、DROP

       拥有该权限的用户可以删除数据库和表。

grant drop on aaa.* to 'a1'@'%' identified by '123123.coM';

 

drop table aaa;

 

4、SELECT

       拥有该权限的用户可以执行 SELECT 语句,即查询数据。

grant select on aaa.* to 'a1'@'%' identified by '123123.coM';

select * from a2;

 

5、INSERT

       拥有该权限的用户可以执行 INSERT 语句,即向表中插入数据。

grant insert on aaa.* to 'a1'@'%' identified by '123123.coM';

 进入aaa库下创建表内容(  use aaa;  )

insert into a2(id,name,age,phone) values
(5,'zkx',25,123456789);

6、UPDATE

       拥有该权限的用户可以执行 UPDATE 语句,即更新表中的数据。

grant update on aaa.* to 'a1'@'%' identified by '123123.coM';

 修改刚才创建的内容

 这里会提示错误,没有select权限因为我们在使用上述命令过程中用到了where条件,此条件属于select命令,所以无法进行使用

 添加select权限

grant select on aaa.* to 'a1'@'%' identified by '123123.coM';

 进行验证

 

7、DELETE

       拥有该权限的用户可以执行 DELETE 语句,即删除表中的数据。

grant delete on aaa.* to 'a1'@'%' identified by '123123.coM';

 进行验证

8、INDEX

       拥有该权限的用户可以创建和删除索引。

grant index on aaa.* to 'a1'@'%' identified by '123123.coM';

 创建索引

create index idx_name on a2 (name);

删除索引 

alter table a2 drop index idx_name;

 删除索引会提示报错,因为我们在赋予权限时没有给它alter权限

添加alter权限 

grant alter on aaa.* to 'a1'@'%' identified by '123123.coM';

 删除索引

alter table a2 drop index idx_name;

9、ALTER

       拥有该权限的用户可以更改表的结构定义,例如更改列的属性、重命名表或更改表的引擎类型等。

grant alter on aaa.* to 'a1'@'%' identified by '123123.coM';

 因为我们需要查看表格属性,给a1用户再添加一个select权限

desc a2;

 在a2表格中添加一行出生日期的列(这里我们用date表示出生日期)

alter table a2 add column date date;

10、CREATE VIEW和CREATE ROUTINE

       分别拥有创建视图和创建存储过程等常规操作的权限。

grant create view,create routine on aaa.* to 'a1'@'%' identified by '123123.coM';

 使用上述命令进行操作还需要给予select权限

创建视图所需权限   select

创建存储过程所需权限   execute,select

 创建视图

create view z1_view as select name,age from z1;

验证视图

select * from z1_view;

 创建存储过程

11、SHUTDOWN

       拥有该权限的用户可以关闭 MySQL 服务器。

shutdown;

 没有赋予shutdown权限时:

       这个错误是MySQL数据库服务器返回的一个访问拒绝错误。根据错误消息,您尝试执行了一个需要"SHUTDOWN"权限的操作,但是您的账户没有被授予这个权限,所以访问被拒绝了。

        "SHUTDOWN"命令是作为超级用户(通常是数据库管理员)在命令行或管理工具中直接执行的。

       在MySQL数据库中,使用"shutdown;"命令将关闭整个MySQL服务器实例,包括所有正在运行的数据库和连接。这意味着所有未保存的数据将丢失,所有已建立的连接将被终止,数据库将停止运行。

       使用"shutdown;"命令要谨慎,因为它会导致系统中断,并可能导致数据损坏或丢失。必须确保在执行此命令之前,所有数据都已备份或保存,所有连接都已断开,并且不再需要数据库运行。

       在生产环境中,通常不应该直接使用"shutdown;"命令来关闭MySQL服务器。而是通过正常的维护程序或脚本来停止服务,以确保数据的完整性和可靠性。

root用户具有shutdown权限

shutdown;

 

 停止以后无法进行操作

show databases;

 查看状态 

systemctl status mysqld

启动即可登录MySQL 

systemctl start mysqld

12、GRANT OPTION

       拥有该权限的用户可以将自己的权限授予其他用户或组。

grant grant option on aaa.* to 'a1'@'%' identified by '123123.coM';

 取消授予权限

revoke grant option on aaa.* from 'a1'@'%';

三、用户赋权

    格式:grant  权限  on  数据库.数据表  to  授权用户@授权主机 identified by  '密码';

grant all privileges on aaa.* to 'a1'@'%' identified by '123123.coM';

 赋予a1用户所有数据操作权限,检查验证

四、权限删除

     格式:revoke  权限类型  on  数据库.数据表  from  授权用户@授权主机;

revoke all privileges on aaa.* from 'a1'@'%';

五、用户删除

    格式: drop user  用户@主机;

drop user 'a1'@'localhost';

 

六、查看拥有哪些用户 

select user,host from mysql.user;

七、查看用户拥有哪些权限

show grants for 'root'@'localhost';

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wjy¹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值