Oracle创建控制列表ACL(Access Control List)

Oracle创建控制列表ACL(Access Control List)

  • Oracle ACL简介
  • 一、先登陆163邮箱设置开启SMTP。
  • 二、Oracle ACL控制列表处理
    • (一)创建ACL(create_acl)
    • (二)添加ACL权限(add_privilege)
    • (三)分配ACL权限给哪些服务器使用(assign_acl)
    • (四)取消分配一个ACL权限(unassign_acl)
    • (五)删除ACL控制列表(drop_acl)
    • (六)如何查询ACL相关
      • 6.1、查询Oracle ACL控制列表清单:dba_network_acls视图
      • 6.2、查询Oracle ACL授权清单:dba_network_acl_privileges视图
    • (七)如何测试,运行存储过程。
      • 7.1、执行SQL匿名块
      • 7.2、执行情况
      • 7.3、查看邮箱


Oracle ACL简介

  • 在Oracle11g中,Oracle在安全方面有了很多的改进,而在网络权限控制方面,也有一个新的概念提出来,叫做ACL(Access Control List), 这是一种细粒度的权限控制。在ACL之前,我们对于有一些程序包,例如UTL_MAIL, UTL_SMTP等这些包,你可以利用这些包连接到外部的主机,而默认情况下,这些包都是都是赋予了public角色,所以可能会导致利用这些PL/SQL程序包的恶意工具,所以Oracle提出了一个新的概念来解决这个问题,那就是ACL。
  • 在开始展开ACL之前,首先明确一些概念。 ACL这个概念不是Oracle首先提出来的,在很多地方的权限管理都用到了ACL,甚至在操作系统上也使用了ACL。一般,我们在做权限管理时,牵扯到一个问题,就是谁要在什么对象上作什么?这个正是对应了我们ACL中的概念。Principal will have what privileges on what object.谁就是principal, 什么对象就是我们的object, 做什么就是我们的privilege。那么如果有了这种细粒度的权限控制,我们就可以定义我们哪些用户拥有哪个远程主机的什么权限了。有了这个概念我们就可以看看如何使用ACL了。我们主要使用的是DBMS_NETWORK_ACL_ADMIN这个自带的包来完成。

一、先登陆163邮箱设置开启SMTP。

如何得到上面登录SMTP服务器的密码
我们这里以 163 邮箱为例
首先登录到163邮箱,点击[设置],然后点击设置下面的[POP3/SMTP/IMAP]
然后看左边的SideBar,点击[客户端授权密码]
最后在右边的页面中按照操作要求设置该邮箱的客户端授权码(登录SMTP服务器的密码)

二、Oracle ACL控制列表处理

(一)创建ACL(create_acl)

使用 DBMS_NETWORK_ACL_ADMIN包的CREATE_ACL函数 创建访问控制列表ACL(ACL)
执行下面的SQL:

BEGINdbms_network_acl_admin.create_acl(acl         => 'email_server_permissions.xml',description => 'Enables network permissions for the e-mail server',principal   => 'LOG' -- 表示赋予权限给哪个用户,is_grant    => TRUE,privilege   => 'connect',start_date  => NULL,end_date    => NULL);COMMIT;
END;

(二)添加ACL权限(add_privilege)

接下来,为该 ACL 增加一个权限:在本示例中,您将尝试将该 ACL 局限于用户 LOG 您还可以定义开始和结束日期。

BEGINdbms_network_acl_admin.add_privilege(acl => 'email_server_permissions.xml',principal => 'LOG' -- 表示赋予权限给哪个用户,is_grant => TRUE,privilege => 'connect',start_date => NULL,end_date => NULL);
END;

(三)分配ACL权限给哪些服务器使用(assign_acl)

分配将受该 ACL 制约的主机以及其他详细信息,使用DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL 将此 ACL 与邮件服务器相关联
执行下列SQL:

BEGINdbms_network_acl_admin.assign_acl(acl => 'email_server_permissions.xml',host => 'smtp.163.com' -- SMTP服务器地址,lower_port => 25 -- 端口,upper_port => NULL);COMMIT;
END;

(四)取消分配一个ACL权限(unassign_acl)

把上一步的授权删除,可以用下列SQL语句实现:

BEGINdbms_network_acl_admin.unassign_acl(acl => 'email_server_permissions.xml',host => 'smtp.163.com' -- SMTP服务器地址,lower_port => 25 -- 端口,upper_port => NULL);COMMIT;
END;

(五)删除ACL控制列表(drop_acl)

BEGINdbms_network_acl_admin.drop_acl(acl => 'email_server_permissions.xml');COMMIT;
END;
/

(六)如何查询ACL相关

6.1、查询Oracle ACL控制列表清单:dba_network_acls视图

SELECT host,lower_port,upper_port,aclFROM dba_network_acls;

查询结果:
在这里插入图片描述

6.2、查询Oracle ACL授权清单:dba_network_acl_privileges视图

SELECT acl,principal,privilege,is_grant,to_char(start_date,'yyyy-mon-dd') AS start_date,to_char(end_date,'dd - mon - yyyy') AS end_dateFROM dba_network_acl_privileges;

查询结果:
在这里插入图片描述

(七)如何测试,运行存储过程。

7.1、执行SQL匿名块

测试是否能成功发邮件,执行下面的SQL:

BEGINsend_mail('tttzzzqqq@qq.com','测试邮件','来自plsql');
END;

注意:发送邮件的存过send_mail(),请看这篇博文:Oracle触发器发送邮件

7.2、执行情况

在这里插入图片描述
点“输出”查看结果:
在这里插入图片描述

7.3、查看邮箱

在这里插入图片描述
我们发现,可以收到消息。


至此,Oracle创建控制列表ACL(Access Control List)就给大家演示完了,有问题欢迎留言或私信!谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法专题突破】双指针 - 盛最多水的容器(4)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:11. 盛最多水的容器 - 力扣(Leetcode) 这道题目也不难理解, 两边的柱子的盛水量是根据短的那边的柱子决定的, 而盛水量…

开源项目的测试和质量保证

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

世纪互联收入增长放缓,低于华尔街预期,全年业绩指引令投资者失望

来源:猛兽财经 作者:猛兽财经 全年业绩指引令投资者失望 世纪互联(VNET)在发布了第二季度喜忧参半的财务业绩后,依然坚持了此前发布的2023财年业绩指引。 财报显示,虽然世纪互联第二季度的收入同比增长了6…

C语言学习之main函数两个参数的应用

main函数的两个参数: int main(int argc, char const *argv[]) {/* code */return 0; }参数argc:表示在执行程序时,在终端所输入参数的个数,包括可执行文件的名称;参数argv:1.本质上是一个字符型指针数组;2.用于获取指…

Redis注入中出现的问题

Redis注入中出现的问题 出现的问题 Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2023-08-23 16:38:42.294 ERROR 32136 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *********…

13、Vue3 大事件管理系统

一、大事件项目介绍 和 创建 1.1 Vue3 大事件管理系统 在线演示: https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 基地址: http://big-event-vue-api-t.i…

ardupilot开发 --- EKF篇

状态估计的算法发展 参数调试 AHRS_EKF_USE: set to “1” to use the EKF, “0” to use DCM for attitude control and inertial nav (Copter-3.2.1) or ahrs dead reckoning (Plane) for position control. In Copter-3.3 (and higher) this parameter is forced to “1” …

搭建 Gitlab

当设置和配置 GitLab 实例并执行诸如创建群组、项目、用户和上传代码等操作时,涉及到多个步骤,每个步骤都有特定的目的。让我们逐步解释每个步骤并说明其背后的原因: 安装必需的软件: yum install -y curl policycoreutils-python…

“超级AI助手:全新提升!中文NLP训练框架,快速上手,海量训练数据,ChatGLM-v2、中文Bloom、Dolly_v2_3b助您实现更智能的应用!”

“超级AI助手:全新提升!中文NLP训练框架,快速上手,海量训练数据,ChatGLM-v2、中文Bloom、Dolly_v2_3b助您实现更智能的应用!” 1.简介 目标:基于pytorch、transformers做中文领域的nlp开箱即用…

前端面试:【实际项目经验】团队协作、代码管理和Git命令梳理

在现代软件开发中,团队协作、代码管理和版本控制是至关重要的方面。本文将分享一些实际项目经验,重点关注团队协作、代码管理,以及Git版本控制的关键命令和最佳实践。 团队协作: 明确角色和责任: 在项目开始阶段&#…

网络地址转换NAT-动态NAT的使用范围和配置-思科EI,华为数通

网络地址转换NAT-动态NAT的使用范围和配置 什么是动态NAT? 使用公有地址池,并以先到先得的原则分配这些地址。当具有私有 IP 地址的主机请求访问 Internet 时,动态 NAT 从地址池中选择一个未被其它主机占用的 IP 地址一对一的转化。当数据会话…

torch.cuda常见相关

文章目录 cuda常见用法场景问题什么是cuda?cuda下载链接 cuda常见用法 torch.cuda.is_available() # 查看是否有可用GPU torch.cuda.device_count() # 查看GPU数量 torch.cuda.get_device_capability(device) # 查看指定GPU容量 torch.cuda.get_device_name(device…

Java源码分析(二)Double

本篇是源码分析的第二篇,上篇我们一起分析了Integer类的源码,本篇一起学习下Double类的源码,看下其实现。 一、Double类图 首先,相比Integer,Double类的源码只有1000行代码。如下是Integer及其关联类/接口的类图&#…

内存泄漏定位工具

1、原理 在编写复杂代码的时候,有时一大意就会忘了释放申请的内存;或是调试前人代码时,发现有内存泄漏,这些情况排查起来相当麻烦。这里基于RT-Thread写了一个内存泄漏定位工具(实际和RTT无关,什么系统都可…

四种常见的数据模型

为什么要进行数仓建模? 性能:良好的数据模型能帮助我们快速查询需要的数据,减少数据I/O吞吐 成本:减少数据冗余、计算结果复用、从而减低存储和计算成本 效率:改善用户使用数据的体验,提高使用数据的效率 改…

移动APP、WEB端和PC端测试的区别

移动APP、WEB端和PC端的测试区别主要体现在以下几个方面: 1. 平台和环境 移动APP是在移动设备上运行的应用程序,测试需要考虑不同的操作系统(如iOS、Android等)、不同的设备型号和屏幕分辨率。WEB端是在浏览器上运行的应用程序&am…

ssm+vue中国咖啡文化宣传网站源码和论文

ssmvue中国咖啡文化宣传网站源码和论文078 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 课题背景 随着时代的发展和人们生活理念的进一步改变,咖啡业已经成为了全球经济中发展最迅猛的产业之一。…

专访 Hyper Oracle:可编程的 zkOracle 打造未来世界的超算

许多 Web3 应用在实现的过程中,常常会遇到基础设施方面的限制,包括去中心化自动化、预言机、链上信息搜索等问题。绝大部分区块链的中间件网络都是依赖于节点质押来保证节点执行的诚实性,这样的模式会产生诸多衍生问题,例如安全性…

几个nlp的小任务(多选问答)

@TOC 安装库 多选问答介绍 定义参数、导入加载函数 缓存数据集 随机选择一些数据展示 进行数据预处理部分(tokenizer) 调用t

探究代理技术在网络安全、爬虫与HTTP通信中的多重应用

在当今高度互联的世界中,代理技术在网络安全、爬虫开发以及HTTP通信中扮演着举足轻重的角色。本文将深入探讨Socks5代理、IP代理以及HTTP代理在这些领域中的多重应用,探索其如何为我们创造更安全、高效的网络环境。 1. Socks5代理:构建安全通…