在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
相关推荐
setup access control in oracle
that allows an application developer to use a third-generation language's native procedure or function calls to access the Oracle database server and control all phases of SQL statement execution....
Direct.Oracle.Access.v4.1.1.0.Full.Source.Delphi12.ccrun.158517.rar
oracle连接access oracle连接access oracle连接access
Oracle.DataAccess.dll是应用程序Oracle.Data provider for .Net程序所需要的一个dll文件,如果程序运行时提示找不到Oracle.DataAccess.dll,可以在本站下载一个,分为32位和64位两个版本,请根据自己的操作系统进行...
Oracle.DataAccess.dll 2.112.3.0
Oracle compatibility ODAC supports Oracle servers 11g, 10g, 9i, 8i, 8.0, and 7.3, including Oracle 10g Express. ODAC supports x86 versions of the following Oracle clients: 11g, 10g, 9i, 8i, 8.0, and ...
本文主要回答了如何在FORM的程序中实现Oracle与Access表之间的导入和导出这个问题。
Oracle.DataAccess9.0.2
64-bit Oracle Data Provider for .NET 4 12.1.0.2.0 64-bit Oracle Data Provider for .NET 2.0 12.1.0.2.0 64-bit Oracle Providers for ASP.NET 4 12.1.0.2.0 64-bit Oracle Providers for ASP.NET 2.0 12.1....
各种数据库的连接方式(mysql,oracle,access)
Oracle.DataAccess.dll 有不同版本的dll 有64位的也有32位的dll
Oracle Access Manager 培训PPT
Oracle Access Manager Document
oracle.dataaccess.dll
批量操作插入oracle数据集的Oracle.DataAccess.dll,区分x64与x86 各种版本
Oracle Data Access Components (ODAC) v6.10(源码版含详细安装说明) <br>一、打开并编译安装Source\Delphi6\dac60.dpk。 二、打开并编译安装Source\Delphi6\dacvcl60.dpk。 三、打开并编译安装Source\...
Table of Contents 1. 部署前准备 2. 安装Identity Server 3. 安装WebPass 4. 配置Identity System 5. 安装Policy Manager 6. 安装Access Server 7. 安装Webgate Appendix. 常用命令和配置说明
Oracle.DataAccess 64位/32位c#开发驱动 各个版本下载
that allows an application developer to use a third-generation language's native procedure or function calls to access the Oracle database server and control all phases of SQL statement execution....