问题标签 [multi-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
stored-procedures - 限制用户仅通过应用层对多数据库解决方案的数据操作
我正在开始开发必须兼容 SQL Server(2005 及更高版本)、Oracle(10r2 及更高版本)和 Sybase(12.5 及更高版本)的新软件。我计划使用存储过程来实现数据库抽象,因此我可以为每种情况使用更多执行数据库特定方法的代码。我计划拒绝访问所有表信息,包括读取的数据,并只允许通过存储过程访问信息。问题是,当我授予将用于 INSERT 的存储过程的 EXECUTE 权限时,如果用户通过 SSMS 或 SQL Plus 连接到数据库,他将能够通过直接调用该过程来添加数据,我会喜欢防止这种情况。我希望通过存储过程的数据操作只能通过我的应用程序执行。我可以为我的应用程序和用户提供单独的登录名,但我希望我的应用程序可以使用用户的凭据通过 NT 身份验证连接到数据库。有没有办法做到这一点?
有没有更好的方法来实现我想要实现的目标?
谢谢
java - Spring+Hibernate+JPA的多数据库
我正在尝试配置 Spring+Hibernate+JPA 以使用两个数据库(MySQL 和 MSSQL)。
我的数据源-context.xml:
每个persistence.xml 包含一个单元,如下所示:
PersistenceUnitManager 导致以下异常:
设置 bean 属性“persistenceUnitManager”时无法解析对 bean“persistenceUnitManager”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [config/datasource-context.xml] 中定义名称为“persistenceUnitManager”的 bean 创建时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.TypeMismatchException:无法将类型 [java.util.ArrayList] 的属性值转换为属性“persistenceXmlLocation”所需的类型 [java.lang.String];嵌套异常是 java.lang.IllegalArgumentException:无法将类型 [java.util.ArrayList] 的值转换为属性“persistenceXmlLocation”所需的类型 [java.lang.String]:
如果只留下一个没有列表的 persistence.xml,每个都可以正常工作,但我需要 2 个单元...
我还尝试找到在 Spring+Hibernate 上下文中使用两个数据库的替代解决方案,因此我将不胜感激。
更改为后的新错误persistenceXmlLocations
:
{classpath:config/persistence.local.xml, classpath:config/persistence.remote.xml} 中没有定义单个默认持久性单元
更新:
我添加了 persistenceUnitName,它可以工作,但只有一个单元,仍然需要帮助。
更新:
我更改了配置文件:datasource-context.xml
持久性.xml
现在它构建了两个 entityManagerFactory,但都是针对 Microsoft SQL Server
我建议,只使用 dataSource,dataSourceRemote(无替换)是行不通的。这是我的最后一个问题。
.net - LINQ To SQL 能否用于其他数据库(MySQl、Oracle 等)
我有使用 WPF 和使用 LINQ to SQL 的数据库 O/RM 创建项目,当我完成我的项目时,有些人想使用 MySQL 作为数据库,所以我可以在不更改任何源代码的情况下将我的 Linq 更改为 MySQL(也许只是更改连接细绳)
问候
sql - 跨多个数据库的 SQLite 视图。这个可以吗?有没有更好的办法?
使用 SQlite 我有一个大型数据库,分为几年: DB_2006_thru_2007.sq3 DB_2008_thru_2009.sq3 DB_current.sq3 它们都有一个名为 hist_tbl 的表,其中包含两列(键、数据)。
要求是: 1. 能够一次访问所有数据。2. 只插入到当前版本。3.随着时间的推移,数据会不断的分裂。4. 访问是通过具有独占访问权的单个程序。5.程序可以接受一些设置SQL,但访问一个或多个数据库时需要运行相同的SQL。
为了统一查看它们,我执行以下操作(实际上是在程序中,但此处显示的是命令行): sqlite3 DB_current.sq3
将数据库“DB_2006_thru_2007.sq3”附加为 hist1;将数据库“DB_2008_thru_2009.sq3”附加为 hist2;创建临时视图 hist_tbl 作为 select * from hist1.hist_tbl union select * from hist2.hist_tbl union select * from main.hist_tbl;
现在有一个 temp.hist_tbl(视图)和一个 main.hist_tbl(表)。当我在不限定表格的情况下选择时,我通过视图获取数据。这是可取的,因为我可以根据我的设置方式对连接视图或单个数据库使用我的罐装 sql 查询。此外,我总是可以插入 main.hist_tbl。
问题1:有什么缺点?问题2:有没有更好的方法?
提前致谢。
sql-server-2008 - SQL Server 2008 Multi-db 存储过程:无法绑定多部分标识符
我正在尝试为 SQL Server 2008 编写一个存储过程。它用于将数据从一个数据库迁移到另一个数据库的迁移工具。
我想从旧数据库中获取新数据库中尚不存在的所有记录。为此,我使用下面的存储过程。但我得到了错误
无法绑定多部分标识符
在执行存储过程时。我能做些什么来完成这项工作?
这是SP:
python - django settings.py 和多数据库帮助
我用的是django1.3,想把我的数据放到1000个数据库中,比如app_idmod_0~ap_idmod_999。现在我改变了我的设置。
它不起作用。我的意思是,当我使用 时
manage.py syncdb --database=myapp_idmod_0
,它不会生成表格。为什么?我怎样才能让它工作?
python - settings.py 中的 Django 项目多数据库配置
我目前正在制作一个用 C# 编写的 asp.NET 内部网站,并在 Django Web 框架中重做它。在确定 .NET 站点正在使用的所有当前数据源之后,我开始配置和测试我从 Django 框架内连接到这些数据库的能力。
- 平台: Archlinux
- Django 版本: 1.3.1
- Python版本: 2.7
问题: 每当我尝试连接到任何未定义为默认数据库的数据库时,我都无法这样做。此外,我无法连接到的任何数据库,只有在它被定义为不是默认值时才会出现。
为了进一步说明这一点,我将提供经过编辑的示例:
如果我注释掉第一个默认数据库定义,并将 mssql 数据库的名称更改为默认值,我可以通过以下方式访问 dbshell:
但是,如果我尝试通过以下方式直接访问上面定义的 mssql 数据库:
我收到一个错误:
就好像它无法正确解析定义一样。所以我的问题基本上是这样的:将它们配对时我是否错误地定义了数据库?
hibernate - 多数据源:1 RW + 许多 RO
我们有一个带有单个数据库“dbMain”的应用程序,具有一组读写操作。
现在我们需要添加额外的数据库 db1-db10 用于只读操作,以便在 SomeServiceImpl 中使用。
问题是:
- 我需要在 SomeServiceImpl 使用几个 DAO(用于 dbMain 和 db1)
- 在 tx:annotation-driven 只能定义单个 transactionManager,@Transactional 将仅使用它进行操作。
- 有时我在 SomeServiceImpl 遇到 db-connection 泄漏,用于使用 db1DAO 进行操作。至少在 @PostConstruct init() {...}
真的,不想使用JTA。配置这种环境的正确方法是什么?
额外的数据库:
codeigniter - CodeIgniter MultiDatabse 连接错误
我在 CodeIgniter 中看到很多连接多数据库的方法/教程?离我还很远。有人让我在 CI 中连接多个数据库。这是我在博客中找到的使用方式。对不起,我不认识博客地址。
我用这个代码调用它
我用这段代码插入了一个简单的行
我收到此错误您指定了无效的数据库连接组。 我应该如何解决这个错误?
django - 带有路由器的 Django 数据库返回计数,但没有记录
我有一个 django-orm 数据库,其中填充了电子表格中收集的数据。我正在尝试编写一个 diff 函数来根据电子表格的内容检查数据库的当前状态。我使用路由器从电子表格中加载数据,将其放入临时的 sqlite 数据库(“默认”数据库是 postgres),这是我的路由器:
从我的差异脚本测试:
这个的输出是:
.count()
如果方法找到 1680 个对象,为什么最后的查询是空的?
编辑这是一些额外的诊断信息(from IPython import embed
用于在脚本运行时查看脚本的状态):
我想问题是 Stimulus 对象是一个外键,路由器很困惑从哪里读取。但是,我可以在 ipython 控制台中通过 id 提取一个 Response 对象,然后将其 Stimulus 作为常规属性(r = Response.objects.get(id=123)
then s = r.stimulus
)。
另一个编辑我已经使用以下方法破解了一个功能但不令人满意的解决方案:
我不知道为什么这有效而Response.objects.all()
无效。