开发者社区> rudy_gao> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Oracle ACL(Access Control List)

简介: 在oralce 11g中假如你想获取server的ip或者hostname,执行如下语句 SELECT utl_inaddr.
+关注继续查看

在oralce 11g中假如你想获取server的ip或者hostname,执行如下语句

SELECT utl_inaddr.get_host_address FROM dual;  //获取IP

SELECT  utl_inaddr.get_host_name FROM dual; //获取host 名字

如果在oracle 9i中能够正常执行,但在11g中你可能会得到一个莫名其妙的错误提示:

ORA-24247: network access denied by access control list(ACL)

 

你可能马上想到是需要啥额外的权限,而我们平时赋予权限一般是grant XXX to user_name;但你找不到有啥跟ACL对应的权限.

实际上这里确实需要额外权限,但赋予权限的方式相当变态,跟grant的方式太不一样了.

 

细粒度访问网络服务

为了更细致的控制网络权限,Oracle 11g中针对这么几个PL/SQL API(UTL_TCP, UTL_SMTP, UTL_MAIL, UTL_HTTP和 UTL_INADDR)的访问设置了单独的权限访问控制方式.

其中UTL_SMTP,UTL_MAIL是跟邮件相关的,比如你可以在触发器中设定当在某些表中做插入删除操作时就发个邮件知识某个负责人.

 

赋予权限

假如要给用户赋予访问上面提到的那些函数咋整呢? 要通过如下的一段pl/sql语句

BEGIN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => 'abc.xml', --这个xml文件名字随便取的,但不同出现同名的情况

description => 'ACL list',

principal => 'ARWEN', --表示赋予权限给哪个用户

is_grant => true, --为true表示赋予权限,如果是false相当取消权限

privilege => 'connect');

 

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'abc.xml',

principal => 'ARWEN',

is_grant => true,

privilege => 'resolve');

 

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'abc.xml',

host => 'Oracle_Host_name'); --因为那些网络操作的权限是针对某一个server的,所以这里是指定一台机器的名字

 

END;

 

 

如果要删除上面的控制列表

BEGIN

DBMS_NETWORK_ACL_ADMIN.drop_acl ( acl => 'abc.xml');

END;

删除这个列表,那用些列表赋予权限的那些用户自然也被取消相应的权限了.

 

关于DBMS_NETWORK_ACL_ADMIN的详细介绍参看Oracle 官方文档:

http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_networkacl_adm.htm

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle 企业管理器DataBase Control使用说明
本文目录 1. 简介 2. 企业管理器登录方式 3. 企业管理器常用功能 3.1 查看数据库基本信息 3.2 查看用户和角色 3.3 查看数据库对象 4. 想法
0 0
Oracle EM Grid Control 关于core_EMAgent文件过多的问题临时解决方法。
场景现象: rac数据库出现如下的大量文件。 原先这个RAC数据库,曾经安装过Oracle EM Grid Control agent 客户端。
983 0
Oracle cloud control 12c 的启动与关闭
    Oracle cloud control 12c整个安装比较复杂,光是安装路径的选择,登录密码,端口号等众多个配置不免让人眼花缭乱,目不暇接。本文描述的是安装完毕后如何获取安装时设定的各类端口号,URL以及如何启动、关闭cloud control等等,供大家参考。
764 0
Oracle cloud control 12c 如何修改sysman密码
    前阵子在虚拟机部署了Oracle Cloud Control 12c,事别几日,竟然忘记了登陆密码。主要是因为现在的Oracle有关的Software比之前提供更强的安全机制。
1040 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Azure Container Services --The best place to run your workload
立即下载
Clipper,A Low-latency Online
立即下载
Breaking the x86 ISA
立即下载