使用系统权限在oracle测试容器上运行初始化脚本

时间:2020-06-05 13:42:40

标签: docker oracle11g testcontainers

我正在与org.testcontainers:oracle-xe:1.14.3苦苦挣扎。 我正在尝试运行旨在验证架构创建和迁移的测试,但是当尝试使用用户“ sys as sysdba”来初始化该测试的用户时,我陷入了InitScript的困扰。

@Before
public void setUp() {
    oracleContainer = new OracleContainer("oracleinanutshell/oracle-xe-11g")
    .withUsername("sys as sysdba")
    .withInitScript("oracle-initscript.sql");
    oracleContainer.start();
}

以上似乎可以建立连接,但是初始化脚本的执行失败,并显示

ORA-01109:数据库未打开

在上面使用“系统”用户不会为InitScript连接提供sysdba特权,但是会导致数据库打开。

我正在寻找一种解决方案,使我可以在测试之前初始化多个用户。此初始化具有需要sysdba特权的授予。执行某些SQL脚本的测试要求两个用户都在数据库中创建,并且可以连接到数据库。

0 个答案:

没有答案