首页 > 数据库 >授权控制-数据库用户分类、授权(GRANT)、收权(REVOKE)

授权控制-数据库用户分类、授权(GRANT)、收权(REVOKE)

时间:2024-06-18 18:32:27浏览次数:15  
标签:收权 REVOKE user1 数据库 GRANT 用户 授权 权限

一、引言

SQL语言的数据控制功能,体现在DBMS的授权机制上,目的是实现数据库的安全访问,确保只有授权用户才能访问数据库,所有未被授权的用户无法获取数据,如何利用SQL语言提供的授权(GRANT)语句和收权(REVOKE)语句来实现自主访问控制功能,这些功能大部分DBMS都支持

二、自主访问控制

自主访问控制就是用户自主控制对数据对象的操作权限

操作权限:用户对某一数据对象的操作权利

1、在DBMS中,用户对数据库的访问权限由两个要素组成:数据库对象和操作权限

2、数据库对象包括数据库、基本表、视图、索引

3、操作权限包括创建(CREATE)、修改(ALTER)、删除(DROP)、查询(SELECT)、更新(插入(INSERT)、修改(UPDATE)、删除(DELETE)),有的DBMS中用ALL PRIVILEGES表示所有操作权限

4、数据库用户

(1)系统管理员。DBMS在安装时,至少有一个系统管理员用户,系统管理员在DBMS上拥有一切权限,负责整个系统的管理

(2)数据库管理员(DBA)。该用户在自己所创建的数据库上拥有一切权限

(3)数据库对象用户。该用户可以建立数据库对象,如表、视图等,在这些数据库对象上拥有全部的操作权限

(4)数据库访问用户。可以对被授权的数据库对象进行操作,如查询数据、修改数据等

5、可以实现不同用户对于不同数据库对象有不同的操作权限,也可以实现不同用户对同一数据库对象有不同的操作权限

三、授权GRANT

1、GRANT语句用来实现权限的授予,向用户授予对某个或者某些数据库对象的操作权限

2、GRANT授权语句的一般格式

GRANT <权限列表>

ON <数据库对象>

To <用户列表>

【WITH GRANT OPTION】

注:加了WITH GRANT OPTION的GRANT授权语句可以使得被授权的用户可以将权限继续转授给其他用户 

3、举例1:将查询sC表和修改学生成绩的权限授给用户user1

grant select,update(grade)
on sC
to user1
with grant option;

四、收权REVOKE

1、REVOKE收权语句的一般格式:

REVOKE 【GRANT OPTION FOR】<权限表>

ON <数据库对象>

FROM <用户表>

【CASCADE|RESTRICT】

注:

(1)GRANT OPTION FOR:只有授权权限被收回

(2)CASCADE:把该用户授权给其他用户的权限同时级联收回

(3)RESTRINCT:当用户没有给其他用户授权时,才能收回权限

2、举例 1:将用户user1查询和修改学生学号的权限收回,并级联收回所授出的权限

revoke select,update(grade)
on sC
from user1
cascade;

五、自主访问控制示例

1、授予用户user1对表c的更新权限

grant update on c to user1;

2、授予用户user1对表s的查询权限,并具有给其他用户授权的权限

grant select on s to user1 
with grant option;

3、以user1登录,把对学生表s的查询权限授予给用户user2

grant select on s to user2;

4、user1再把对课程表c的更新权限授予给用户user2

grant update on c to user2;

5、DBA级联收回用户user1对学生表s的查询权限

revoke select on s from user1 cascade;

注意:reovke语句的默认选项是RESTRICT

6、在用户user1具有对学生表s的select权限时,再授予其对视图sJ_s的select和update权限 

grant select,update
on  sJ_s
to user1

7、用户user1修改视图中属性sNo为“202218014030”的学生姓名为“小龙女”

update sJ_s
set sJ_sN='小龙女'
where sJ_sNo='202218014030'

8、用户user1再修改学生表s中属性sNo值为“202218014030”的学生姓名为“小龙女”

update s
set sN='小龙女'
where sNo='202218014030'

9、结论:

(1)用户所具有的关系上的权限与其拥有的关系上的视图的权限是不同的

(2)用户只能在其具有的权限下对数据库进行操作

(3)DBMS可通过为用户定义视图,并为用户授予访问视图的相关权限,在满足用户操作需求的情况下,提高了数据库中数据的安全性

(4)利用GRANT和REVOKE语句,用户可以自主地决定将数据的存取权限授予其他用户,“自主”地决定是否也将“授权”的权限授予给其他用户

 六、小结

1、基于角色的访问控制通过给角色授权来简化为用户授权的过程

2、自主访问控制(Discretionary Access Control)通过GRANT和REVOKE语句来实现权限的管理。访问控制方式灵活,但容易失控

3、高安全级别的DBMS要求支持强制访问控制(Mandatory Access Control)

标签:收权,REVOKE,user1,数据库,GRANT,用户,授权,权限
From: https://blog.csdn.net/Watermelon_Mr/article/details/139724562

相关文章

  • 网络安全管理是一个系统化的过程,旨在保护网络系统及数据免受未经授权的访问和各类网络
    网络安全管理是一个系统化的过程,旨在保护网络系统及数据免受未经授权的访问和各类网络攻击。其工作原理主要包括以下几个方面:预防措施:通过安全配置管理和需求分析确定潜在的安全威胁,并制定相应的预防策略。这包括对网络设备和软件进行严格的安全配置以及定期更新,确保系统......
  • 常见的授权渗透环境
    有一些经过授权的渗透测试环境可供学习和实践使用。以下是一些常见的环境:OWASPMutillidae:这是一个免费的、开源的Web应用程序,它包含了许多故意设计的脆弱性,用于安全测试和渗透测试实践。你可以在本地安装它,并尝试发现和利用其中的安全漏洞。OWASPWebGoat:这是另一个OWASP项目,也......
  • 处理问题:windows server 2016由于没有远程桌面授权服务器可以提供许可证,远程会话被中
      windowsserver可以多用户同时登陆,默认最大远程登录数量为2,如果有更多人需要同时远程登录,则需要安装远程桌面授权服务,第一次安装后,免费期为120天,超过则无法正常远程登录。解决办法如下:Windowsserver2016服务器远程桌面登录时出现错误提示:“由于没有远程桌面授权服务器......
  • OAuth2.0 实现单点登录(四种授权方式)
    一、四种授权模式1、客户端模式(ClientCredentials)指客户端以自己的名义,而不是以用户的名,向“服务提供商”进行认证。严格的说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求“服务提供商”提供服务,其实不存在授权问题。流......
  • mysql8.0授权root远程访问
     mysql8.0授权root远程访问要授权MySQL8.0的root用户远程访问,你可以按照以下步骤操作:登录到MySQL服务器:  mysql-uroot-p创建一个新的用户或者授权现有用户(如果已存在):  CREATEUSER'root'@'%'IDENTIFIEDBY'password';或者 ......
  • idea2023最新激活码授权码,全家桶License
    个人名片......
  • pgAdmin未授权命令执行漏洞(CVE-2022-4223)
    ​https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v5.7/source/pgadmin4-5.7.tar.gz 下载pgadmin5.7的源码首先从代码层面进行分析接口 /validate_binary_path​最后调用了 subprocess.getoutput(​来执行了命令这一部分代码是对传入的路径进行检测,如果是在linu......
  • 什么是SpringSecurity的认证与授权?
    在SpringSecurity框架中,认证(Authentication)和授权(Authorization)是两个核心概念,它们是实现应用安全的基石。虽然这两个术语通常一起使用,但它们描述的是两个不同的安全过程。认证(Authentication)认证是确认某个用户的身份的过程。简而言之,认证过程是用来验证用户是否是......
  • 基础概念-认证授权会话
    1.1.  什么是认证进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条等,下边拿微信来举例子说明认证相关的基本概念,在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,输入账号和密码登录微信的过程就是认证。系统为什么要认证?......
  • 抖音小红书淘宝拼多多商家订单对接ERP|获取电商平台订单信息(商家授权)
     custom-自定义API操作 支持抖音拼多多淘宝小红书公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认yes,将......