Ime*_*lli 6 sql-server hibernate jpa multi-tenant database-schema
我有兴趣使用hibernate作为提供者和SQLServer作为数据库来实现多租户解决方案.我正在使用基于模式的方法,这意味着一个数据库和不同的模式.
具体来说,我的问题是如何使用SQLServer更改执行模式.我已经将这种方法用于MySQL use $database,PostgreSQL SET search_path TO $schema和Oracle,ALTER SESSION SET CURRENT_SCHEMA = $schema并且我能够成功地从一个模式切换到另一个模式,注意到模式概念因数据库而异.
但是,使用SQLServer,我知道没有改变执行模式的事情.我知道在未授予用户sysadmin角色的情况下切换给定用户的默认架构的可能性.我也知道使用folllwing查询的模拟概念:EXECUTE AS USER = $user.模拟允许一个用户模仿其他用户,这样就可以更改当前用户.
根据定义,切换当前用户可以切换执行模式,因为一旦用户被更改,执行模式就是新用户的默认模式.然而,冒充有一个限制,因为我们不能超过32个执行模拟times.Although有可能执行revert,以避免达到极限模拟数字模拟每一个后,该解决方案是不适合我的情况和我在寻找替代.
有没有人对使用SQLServer和基于模式的方法的多租户实现有任何建议?
还有除我提到的切换执行模式之外的任何解决方案.
非常感谢你的帮助.非常感谢你.
以下是需要考虑的要点
如果您由于数据量大幅增长而计划从共享数据库中横向扩展特定租户,则上述将租户明智的连接字符串保留在存储中的选项将很有帮助,以便提供更长的响应时间和更好的性能。其余的租户。
有关 Azure 碎片地图的更多信息
编辑
实际上,当您将用户映射到 SQL Server 中的架构时,您不需要[Schema].[Table]在查询中使用 ,而是可以直接使用[Table],访问会自动发生。您实际上可以使用 like 将用户映射到架构ALTER USER erpadmin WITH DEFAULT_SCHEMA = erpadmin;,从那时起,查询不需要表的架构前缀。更多详情请点击这里
华泰
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |