Oracle ACL(Access Control List)

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

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

在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

目录
相关文章
|
29天前
|
SQL Oracle 安全
Oracle Database Vault Access Control Components
Oracle Database Vault Access Control Components
10 0
|
12月前
|
算法 Shell Apache
Apache ZooKeeper - ZK的ACL权限控制( Access Control List )
Apache ZooKeeper - ZK的ACL权限控制( Access Control List )
290 0
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件(下)
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件
140 0
|
API Windows 容器
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件(上)
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件
162 0
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件(上)
|
存储 安全 数据安全/隐私保护
Zookeeper-Access Control List(ACL)
Z K作为一个分布式协调框架、内部存储着一些分布式系统运行时状态的元数据。如何有效的保护这些数据的安全、如何做一个比较好的权限控制显得非常的重要。 ZK 为我们提供一套完善的 ACL(access control list,访问控制列表) 权限控制机制来保障数据的安全。
112 0
|
SQL Oracle 关系型数据库
Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句
最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。
161 0
|
2月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
1月前
|
Java
Java使用List去重的四中方式
Java使用List去重的四中方式
21 6
|
2月前
|
Java
JAVA——List中剔除空元素(null)的三种方法汇总
JAVA——List中剔除空元素(null)的三种方法汇总
|
2月前
|
安全 Java API
Java并发 - J.U.C并发容器类 list、set、queue
Queue API 阻塞是通过 condition 来实现的,可参考 Java 并发 - Lock 接口 ArrayBlockingQueue 阻塞 LinkedBlockingQueue 阻塞 ArrayQueue 非阻塞 LinkedQueue 非阻塞

推荐镜像

更多
http://www.vxiaotou.com