我有兴趣使用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和基于模式的方法的多租户实现有任何建议?
还有除我提到的切换执行模式之外的任何解决方案.
非常感谢你的帮助.非常感谢你.