【发布时间】:2018-05-03 18:11:24
【问题描述】:
我使用的数据库是Oracle 11g Express Edition release 2。
我在同一个实例 xe 中创建了 2 个schemas。它们都具有相同的表名称和序列名称以及存储过程以及存储函数和视图名称。但是表structures 和视图texts 是不同的(它们之间有一些修改)。
之所以创建这两个schemas,是因为我们的项目有两个版本。所以第一个schema 用于第一个版本,第二个schema 用于第二个版本。我们的 Web 应用程序Spring 项目的机制是,每当通过 Web 应用程序登录页面建立连接时,相应的 Oracle 用户就会根据输入的登录信息建立连接;所以没有固定的凭证连接,每个web应用登录都有对应的Oracle用户。
因此,为了让每个用户都能使用每个数据库对象,我为每个对象创建了public synonyms,并为每个用户授予了它们的权限。但是数据库对象归我开头提到的schema 所有。现在我的问题是:我们的客户希望两个项目版本在同一个实例(同一台计算机服务器)上运行。因此其中一个项目版本无法运行,因为public synonyms 只能引用特定的schema 所有者。那么如何使public synonyms 为每个schema 工作?
【问题讨论】:
标签: spring oracle spring-mvc oracle11g oracle-xe