我们有一个拥有1000多个数据库和600多个sprocs的应用程序。每个数据库代表一个不同的客户端。
问题:我们需要将此移动到单个数据库,同时尽可能减少对ui的影响,这意味着不要一次更改所有的sproc签名。
连接字符串当前设置数据库属性,建议是将其移动到用户属性。此属性(使用SYSTEM_USER)可用于确定将在where子句中使用的站点标识符。
以上不是最终解决方案,但允许我们以缓慢的控制速度更改sproc签名。完成所有操作后,我们可以更正connstring并获得一些连接池。
我们可以在sqlserver 2005/8上拥有的登录/用户数量是否有任何限制。或者有没有人走上这条道路,可以为更好的选择提供一些启示。
答案 0 :(得分:1)
请在此处查看我的回答 Ideas for Combining Thousand Databases into One Database
听起来你们两个正在做同一个项目。你需要在移动到一个数据库之前更改每个proc,否则每个客户端都会看到其他数据。
答案 1 :(得分:0)
至于SQL Server 2005/08上的登录次数 - 我认为没有人遇到过这方面的硬限制。几千个 NOT 根本不会出现任何问题。
您可以针对此方案考虑的可能是每个客户的单个数据库中的一个架构,例如客户“米勒”有一个“米勒”架构,其内部对象,客户“布朗”将有一个“棕色”架构。
与HLGEM刚刚回复的内容相反 - 不,客户不会看到彼此的数据,如果您指定了适当的权限 - 每个客户(及其用户)只能进入自己的架构 - 应该可以正常工作。
马克
答案 2 :(得分:0)
您还可以考虑在连接字符串中设置一个与众不同的应用程序名称,而不是使用一个独特的用户,您可以使用APP_NAME()进入您的where子句。我确信SQL Server不会出现数千次登录的问题,但您可能不想创建它们。