美文网首页
MySQL数据库权限分配

MySQL数据库权限分配

作者: 黎涛note | 来源:发表于2019-11-15 00:13 被阅读0次

一、基本内容

1. 掌握用户管理的基本使用方法

(1)创建用户(带密码)。
(2)创建超级用户。
(3)删除用户。

2. 掌握用户授权和回收权限的基本使用方法

(1)给用户授权。
(2)转授权。
(3)回收用户权限。
(4)级联回收权限。

3. 掌握角色的使用方法

(1)创建角色。
(2)删除角色。
(3)给角色授权。
(4)撤销角色权限。
(5)利用角色授权。
(6)收回利用角色授予的权限。

4.掌握系统级权限和对象级权限的使用方法

(1)系统级权限。
(2)对象级权限。
(3)表级权限。
(4)列级权限。

二、问题描述

1.掌握用户管理的基本使用方法

(1)创建用户(带密码)。

创建用户:
<1> 用户1
Username:DBA
Password:111111

<2> 用户2
Username:u1
Password:111111

<3> 用户3
Username:u2
Password:111111

<4> 用户4
Username:u3
Password:111111

<5> 用户5
Username:new
Password:111111

(2)创建超级用户。

Username:root
Password:root
超级管理员在安装mysql时,已经创建,如下可显示登录过程,以及超级管理员的用户权限。

2.掌握用户授权和回收权限的基本使用方法

(1)给用户授权。

给root授予超级权限的权限
数据库创建的时候,已经创建。

(2)转授权。
GRANT ALL PRIVILEGES ON edutest.* TO u3 WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON edutest.* TO u2 with grant option;

GRANT ALL PRIVILEGES ON day15.* TO 'u1' with grant option;

GRANT ALL PRIVILEGES ON day1.* TO new@localhost IDENTIFIED BY 'new';

GRANT ALL PRIVILEGES ON edutest.* TO DBA WITH GRANT OPTION;

(3)回收用户权限。

 revoke SELECT on edutest.* from u1
revoke SELECT,update on edutest.* from u2
revoke delete,insert on edutest.student from u3

3.掌握角色的使用方法

(1)创建角色
创建角色ROLE1

CREATE ROLE ROLE1

(2)给角色授权
给ROLE1更新SUPPLIER表的权限

GRANT SELECT,UPDATE ON SUPPLIER TO ROLE1

(3)撤销角色权限
收回ROLE1查询SUPPLIER表的权限

REVOKE SELECT ON SUPPLIER FROM ROLE1 

(4)利用角色授权
给DBA授予ROLE1的权限

exec sp_addrolemember 'ROLE1','DBA'  

(5)收回利用角色授予的权限

REVOKE INSERT ON SUPPLIER FROM ROLE1  

三、SQL语句

1创建用户(带密码)。

<1> 用户1
Username:DBA
Password:111111
代码:

INSERT INTO USER(HOST,USER,PASSWORD) VALUE('localhost','DBA',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON day1.* TO DBA WITH GRANT OPTION;

FLUSH PRIVILEGES;

结果:


image.png
image.png
image.png

<2> 用户2
Username:u1
Password:111111

代码:

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','DBA',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON edutest.* TO DBA with grant option;

结果:


image.png
image.png

<3> 用户3
Username:u2
Password:111111

代码:

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','u2',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON edutest.* TO u2 with grant option;

结果:


image.png
image.png

<4> 用户4

Username:u3
Password:111111

代码:

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','u3',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON edutest.* TO u3 WITH GRANT OPTION;

结果:


image.png
image.png

<5> 用户5
Username:new
Password:111111
代码:

INSER TINTO USER(HOST,USER,PASSWORD) VALUE('localhost','new',PASSWORD('new'));

GRANT ALL PRIVILEGES ON day15.* TO NEW@localhost IDENTIFIED BY 'new';

FLUSH PRIVILEGES;

结果:

SELECT * FROM USER;
image.png
SELECT * FROM USER;
image.png
image.png
image.png

2 创建超级用户。

Username:root
Password:root
超级管理员在安装mysql时,已经创建,如下可显示登录过程,以及超级管理员的用户权限。还用户可以对mysql数据库中所有数据库有操作的权利,可以享有一切超级权限。


image.png

3 回收权限

(1)为spring用户分配spring数据库的所有权限

Insert,select, update,delete, alter 等

<1> 在user 表中创建用户

insert into user(host,user,password)value('localhost','spring',password('spring'));

结果:
查看mysql 数据库user表中进行查询:

Select * from user;
image.png

< 2> 将数据库spring 的所有权限交给用户spring

Grant all privileges on spring.* to spring@localhost identified by 'spring';

flush privileges;

执行完上述的语句之后,必须查看mysql 数据库的db表,是否将spring数据库的所有权限分配给了用户spring

Db表的结果:


image.png

执行完上述的语句之后,必须查看mysql 数据库的table_pri表,是否将spring数据库表的所有权限分配给了用户spring


image.png
对用户spring的权限进行收回
用户权限收回前:

Create权限:

CREATE TABLE userStu(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sname VARCHAR(20) NOT NULL,
    snum INT NOT NULL,
    sdept VARCHAR(10)
);
image.png

Insert,select权限:

insert into userStu(sname,snum,sdept) value ('黎涛','1001','IT');

select * from userStu;
image.png

Update 权限:

UPDATE userStu SET sdept='SA' WHERE sname='黎涛';

SELECT * FROM userStu;
image.png
image.png

Delete权限:

delete from userStu where sname='黎涛';

SELECT * FROM userStu;
image.png

回收权限后:

该用户无法使用
Create


image.png

将spring用户的create 权限收回后,已经无法正常进行数据库表的创建:


image.png
Insert
image.png
image.png

Update


image.png

在执行修改语句时已经出现了错误,已经不能进行修改操作了:

image.png
Delete
image.png
在执行删除语句时已经出现了错误,已经不能进行删除操作了:
image.png
/将收回的权限重新进行授予/
GRANT CREATE,INSERT,UPDATE,DELETE ON spring.* TO spring@'localhost' IDENTIFIED BY 'spring';
image.png

4 转授权限:

创建两个用户:

/创建springmvc用户 ,为该用户分配springmvc 数据库的所有权限/
/创建springmvc用户/

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','springmvc',PASSWORD('springmvc'));

/为该用户分配springmvc 数据库的所有权限/

GRANT ALL PRIVILEGES ON springmvc.* TO springmvc@'localhost' IDENTIFIED BY 'springmvc' WITH GRANT OPTION; 

FLUSH PRIVILEGES;

/创建springmvc1用户 ,为该用户分配springmvc 数据库的所有权限/
/创建springmvc1用户/

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','springmvc1',PASSWORD('springmvc1'));

FLUSH PRIVILEGES;

Mysql数据库的User表


image.png

数据库权限db表:


image.png
Springmvc 用户一切正常:
image.png

注意:在此之前用户springmvc1是对数据库springmvc没有任何的操作权限

在springMVC用户中进行分配:
/为该用户分配springmvc 数据库的所有权限/

GRANT ALL PRIVILEGES ON springmvc.* TO springmvc1@'localhost' IDENTIFIED BY 'springmvc1' WITH GRANT OPTION; 

FLUSH PRIVILEGES;
image.png

相关文章

  • MySQL 新建数据库并分配

    登录MySQL 显示数据库 创建数据库 分配用户权限

  • Mysql创建用户分配权限

    mysql创建用户 mysql为用户分配权限 分配完权限刷新权限

  • MySQL 用户管理

    新增用户 修改用户密码 删除用户 权限分配 grant用法 权限: 常用总结 数据库: 用户名: mysql账户名...

  • 我的mysql记事本

    登陆mysql -uroot -p 权限问题分配权限分配只读权限:GRANT SELECT ON . TO 'us...

  • MySQL数据库权限分配

    一、基本内容 1. 掌握用户管理的基本使用方法 2. 掌握用户授权和回收权限的基本使用方法 3. 掌握角色的使用方...

  • MySQL之用户权限管理

    1.用户权限简介 当我们创建过数据库用户后,还不能执行任何操作,需要为该用户分配适当的访问权限。 关于 MySQL...

  • 巧用SQLyog工具02--创建用户

    一、问题 mysql数据库root用户分配权限给开发者使用 二、方案 1、打开SQLyog,“工具”--“用户管理...

  • mysql用户权限与缓存

    mysql 用户权限与缓存 mysql用户和权限管理: 元数据数据库:mysql 用户帐号: 'USERNAME'...

  • ubuntu mysql 操作

    更新源 安装MySQL 查看是否成功 登录MySQL 创建账号 分配权限 刷新权限 退出 重启MySQL服务 完成...

  • 一文详解MySQL权限

    MySQL权限级别介绍 MySQL权限级别 全局性的管理权限,作用于整个MySQL实例级别 数据库级别的权限,作用...

网友评论

      本文标题:MySQL数据库权限分配

      本文链接:https://www.haomeiwen.com/subject/xxtjictx.html