数据库安全控制——授权及回收权限

这篇具有很好参考价值的文章主要介绍了数据库安全控制——授权及回收权限。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关:授权

任务描述

本关任务:系统用户 root 授权 user1 用户创建数据库 teachingdb2 及其所有对象的权限

相关知识

为了完成本关任务,你需要掌握 MySQL 的权限管理。

MySql系统库中的权限表

MySql 系统库中的权限表: user:最重要的权限表,存储允许连接到服务器的账号。 db:存储用户对某个数据库的操作权限。 host:存储某个主机对数据库的操作权限。 tables_priv:对单个表进行权限设置。 columns_priv:对单个数据列进行权限设置。 columns_priv:对存储过程和存储函数进行权限设置。

访问控制的两个阶段:

1、连接核实阶段 用户试图连接 MySQL 服务器时,服务器基于用户提供的信息来验证用户身份。使用 MySQL 的 user 表进行身份核实 2、请求核实阶段 对当前用户的每个操作都进行权限检查,判断用户是否有足够的权限来执行它。 如图所示:

数据库授权和回收权限,数据库,mysql,服务器

授予的权限等级:

全局层级:适用于一个给定服务器中所有的数据库。 数据库层级:适用于一个给定数据库中的所有目标。 表层级:适用于一个给定表中的所有列。 列层级:适用于一个给定表中的单一列。 子程序层级:适用于存储的子程序 ,可以被授权为全局层级和数据库层级。

MySQL 权限类型

如图所示:

数据库授权和回收权限,数据库,mysql,服务器

grant 语句的基本语法格式

grant 语句的基本语法格式:

 
  1. grant priv_type [(column_list)] //要设置的权限项;
  2. [,priv_type[(column_list)]][,.....n] on
  3. {tbl_name|*|*.*|db_name.*|db_name.tbl_name} //对象类型;
  4. to user[identified by [password] ‘password’]
  5. [,user[identified by [password] ‘password’]][,....n]
  6. [with grant_option] //可以将该用户的权限转移给其他用户;

示例:使用 grant 语句创建一个新用户 test1,密码为 test123,该用户对所有的数据又查询、插入的权限,并授予 grant 权限。

 
  1. grant select,insert on *.* to test1@localhost identified by ‘test123’ with grant option;

revoke 语句的基本语法格式

revoke 语句的基本语法格式:

 
  1. revoke priv_type [(column_list)][,priv_type[(column_list)]][,.....n] on
  2. {tbl_name|*|*.*|db_name.*|db_name.tbl_name}
  3. from ‘username’@’hostname’[,‘username’@’hostname’][,...n]

使用 revoke 语句收回收回 test1 用户对 course 数据库中 student 表的 update 权限示例:

 
  1. revoke update on course.student from test1@localhost;

查看权限

语法:

 
  1. show grants for username@hostname

例子: 查用用户 test1 的权限信息

 
  1. show grants for test1@localhost;

限制权限

max_queries_per_hour count:表示每小时可以查询数据库的次数。 max_connections_per_hour count:表示每小时可以连接数据库的次数 max_updates_per_hour count:表示每小时可以修改数据库的次数。

示例:授予 test1 每小时可以发出的查询数为 50 次,每小时可以连接数据库 10 次,每小时可以发出的更新数为 5 次。

 
  1. grant all on *.* to test1@localhost identified by ‘test123’
  2. with max_queries_per_hour 50
  3. with max_connections_per_hour 10
  4. with max_updates_per_hour 5;

编程要求

根据提示,在右侧编辑器补充代码,系统用户 root 授权 user1 用户创建数据库 teachingdb2 及其所有对象的权限

 use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
 grant all on teachingdb2.* to 'user1'@'localhost';
  
 /**********End**********/

第2关:授权-练习一

任务描述

本关任务:给 user1 授予在 teachingdb 所有对象上的 SELECT 权限,并使该用户具有给其他用户授予相同权限的权限。

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码,给 user1 授予在 teachingdb 所有对象上的 SELECT 权限,并使该用户具有给其他用户授予相同权限的权限。

测试说明

  1. 点击右上角的重置命令行 先点击命令行,来到命令行界面

    数据库授权和回收权限,数据库,mysql,服务器

    然后点击右侧的重置命令行按钮,进行重置

  2. 编写代码后,点击测评即可。

     use teachingdb;
    
     /****请在此编写代码,操作完毕之后点击评测******/
     
     /**********Begin**********/
     grant select on teachingdb.* to user1@localhost with grant option;
       
      
     /**********End**********/

     第3关:授权-练习二

任务描述

本关任务:给 user1 和 user2 授予 stuednt 表上的所有权限。

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码。给 user1 和 user2 授予 student 表上的所有权限。

测试说明

  1. 点击右上角的重置命令行 先点击命令行,来到命令行界面

    数据库授权和回收权限,数据库,mysql,服务器

    然后点击右侧的重置命令行按钮,进行重置

  2. 编写代码后,点击测评即可。

     use teachingdb;
     /****请在此编写代码,操作完毕之后点击评测******/
     
     /**********Begin**********/
      grant all on student to user1@localhost;
      
     /**********End**********/

     第4关:授权-练习三

任务描述

本关任务:给 user2 授予 score 表 grade 字段上的UPDATE权限。

相关知识

见上一关

编程要求

根据提示,在右侧编辑器补充代码。给 user2 授予 score 表 grade 字段上的 UPDATE 权限。

测试说明

本关卡不用重置命令行:编写代码后,点击测评即可。

 use teachingdb;
 
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  /*grant update(grade) on score to user2@localhost;*/
  GRANT USAGE ON *.* TO 'user2'@'localhost' IDENTIFIED BY PASSWORD '*B2B366CA5C4697F31D4C55D61F0B17E70E5664EC'

  
 /**********End**********/

第5关:回收权限

任务描述

本关任务:从 user1@localhost 用户收回查询 teachingdb 所有对象的SELECT权限。

相关知识

见第一关

编程要求

根据提示,在右侧编辑器补充代码,从 user1@localhost 用户收回查询 teachingdb 所有对象的 SELECT 权限。

测试说明

  1. 点击右上角的重置命令行 先点击命令行,来到命令行界面

    数据库授权和回收权限,数据库,mysql,服务器

    然后点击右侧的重置命令行按钮,进行重置

  2. 编写代码后,点击测评即可。

     use teachingdb;
     /****请在此编写代码,操作完毕之后点击评测******/
     
     /**********Begin**********/
      revoke select on teachingdb.* from user1@localhost;
      
     /**********End**********/

     文章来源地址https://www.toymoban.com/news/detail-755029.html

到了这里,关于数据库安全控制——授权及回收权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务攻防-数据库安全-服务应用的安全问题以及测试流程-Mysql&Hadoop&未授权访问&RCE-漏洞复现

    目录 一、服务应用的安全问题 1、配置不当——未授权访问 2、安全机制——特定安全漏洞 3、安全机制——弱口令爆破攻击 二、服务应用的安全测试思路 1、判断服务是否开放 2、判断服务类型 3、判断利用方式 三、Mysql-未授权访问-CVE-2012-2122 利用 1、漏洞概述 2、漏洞复现

    2024年02月17日
    浏览(44)
  • oracle数据库给用户授权DBA权限&Oracle查看哪些用户具有DBA权限

    步骤一:以sysdba身份登录到Oracle数据库 在授予DBA权限之前,我们首先要以sysdba身份登录到Oracle数据库。使用以下命令登录: 步骤二:创建用户(如有用户跳过) 要授予DBA权限,首先需要创建一个新用户。使用以下命令创建一个新用户: 步骤三:授予DBA权限 一旦用户创建成

    2024年02月09日
    浏览(49)
  • 【数据库】 mysql用户授权详解

    目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 mysql刚安装时,临时密码会存储在 /var/log/mysqld.log 1,查看临时密码 方法一:直接给出密码   方法二:查到的语句的最后为

    2024年02月11日
    浏览(58)
  • MySQL数据库——MySQL GRANT:用户授权

    授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行  GRANT  语句,其语法格式如下: 其中: priv_type 参数表示权限类型; columns_list 参数表示权

    2024年02月06日
    浏览(58)
  • Mysql数据库——用户管理与授权

    用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库)。 1.新建用户 2.查看用户信息 3.重命名用户 RENAME USER \\\'zhangsan\\\'@\\\'localhost\\\' TO \\\'lisi\\\'@\\\'localhost\\\'; 4.删除用户 DROP USER \\\'lisi\\\'@\\\'localhost\\\'; 5.修改当前登录用户密码 SET PASSWORD = PASSWORD(\\\'abc123\\\'); 6.修

    2024年02月09日
    浏览(49)
  • MySQL数据库配置及创建用户和授权

    注意: 都是基于MySQL8.0以上版本 需要注意的是,修改 MySQL 的配置参数时需要谨慎,如果参数配置不合理,可能会导致数据库性能下降或出现其他问题。修改 MySQL 的配置参数时,最好具有一定的经验或者了解相关的 MySQL 参数调优知识。 vi /etc/my.cnf 第一步: cd /etc #进入etc目录

    2024年02月15日
    浏览(48)
  • postgresql|数据库|角色(用户)管理工作---授权和去权以及usage和select两种权限的区别

    postgresql做为一个比较复杂的关系型的重型数据库,不管是安装部署,还是后期的运行维护,都还是有比较多的细节问题需要引起关注。 例如,用户权限的合理分配,那么,什么是权限的合理分配呢? 自然是权限的最小化原则,也就是说每个用户能够完成其权限范围内的工作

    2024年02月13日
    浏览(45)
  • 数据库安全:Hadoop 未授权访问-命令执行漏洞.

    Hadoop 未授权访问主要是因为 Hadoop YARN 资源管理系统配置不当,导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过 RESTAPI 部署任务来执行任意指令,最终完全控制服务器。 数据库安全:Hadoop 未授权访问-命令执行漏洞. Hadoop 未授权访问-命令执行漏

    2024年02月05日
    浏览(41)
  • Mysql数据库表管理和用户管理与授权

    1)方式一:创建新表,导入数据  2)复制表(直接复制表不能保证原有的表结构)  创建方式与创建表完全一致,最大的区别是,临时表只在当前的数据库连接生效,当数据库连接断开或重新连接终端时,该临时表均失效,无法查看。 方式一:delete清空   方式二:truncat

    2024年02月09日
    浏览(45)
  • Mysql数据库中的用户管理与授权

    ddl: create drop alter dml:对数据进行管理update insert into delete truncate dql:查询语句 select dcl:权限控制语句grant revoke create user \\\'用户名\\\'@\\\'主机\\\' identified by \\\'密码\\\' 加密 SELECT PASSWORD(\\\'密码\\\'); #先获取加密的密码 CREATE USER \\\'lisi\\\'@\\\'localhost\\\' IDENTIFIED BY PASSWORD \\\'加密的密码\\\';  select user(); grant all

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包