将嵌入式 Oracle JVM 中运行的 Java 按名称授予 Oracle 目录的等效语法是啥?

Posted

技术标签:

【中文标题】将嵌入式 Oracle JVM 中运行的 Java 按名称授予 Oracle 目录的等效语法是啥?【英文标题】:What is the equivalent syntax to grant Java running in the embedded Oracle JVM to an Oracle Directory by Name?将嵌入式 Oracle JVM 中运行的 Java 按名称授予 Oracle 目录的等效语法是什么? 【发布时间】:2011-10-14 20:05:06 【问题描述】:

要将在 10g DBMS 中内置的 Oracle JVM 中运行的 java 代码授予我可以执行的磁盘上的特定目录:

dbms_java.grant_permission( 
        'SCOTT', 
        'SYS:java.io.FilePermission', 
        '/some/path/on/disk', 
         'read');

授予在 10g DBMS 中内置的 Oracle JVM 中运行的 Java 代码按名称命名的 Oracle 目录的等效语法是什么?

dbms_java.grant_permission( 'SCOTT', 
 'SYS:java.io.FilePermission', 
 'SOME_DIRECTORY_IN_ALL_DIRECTORIES_VIEW', 
 'read');

目录对象可以在这里找到: 从所有目录中选择 *

all_directories 视图中的示例条目:

OWNER   DIRECTORY_NAME    DIRECTORY_PATH
SYS     LOG               /export/home/scott/log
SYS     RESPONSE          /export/home/scott/response
SYS     STAGING           /export/home/scott/staging

如果有这样的野兽,从Java代码中的命名目录读取的语法是什么?

【问题讨论】:

【参考方案1】:

根据我在this AskTom question 中读到的内容,您需要以下内容:

SELECT directory_path INTO v_path
  FROM all_directories
 WHERE directory_name = '<oracle_dir_name>';

dbms_java.grant_permission( 'SCOTT', 
 'SYS:java.io.FilePermission', 
 v_path, 
 'read');

【讨论】:

明白。我这样做了,它似乎与目录对象的整个想法相冲突。

以上是关于将嵌入式 Oracle JVM 中运行的 Java 按名称授予 Oracle 目录的等效语法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu之jdk安装

JDK下载 安装 配置

Oracle 乘以 10 嵌入 Java 应用程序

java 语言知识

JRE,JDK,JVM的区别

将嵌入式码头和 GRPC 服务器运行在同一个 JVM 中是一种好习惯吗?