【发布时间】:2010-04-20 22:59:23
【问题描述】:
我正在构建一个应用程序,该应用程序需要为每个客户提供单独的 SQL Server 数据库。
为此,我需要能够创建一个新的客户文件夹,将原型数据库的副本放在文件夹中,更改数据库的名称,并将其作为新的“数据库实例”附加到 SQL Server .原型数据库包含所有必需的表、字段和索引定义,但没有数据记录。我将使用 SMO 来管理附加、分离和重命名数据库。
在创建原型数据库的过程中,我尝试使用 Sql Server Management Studio 将数据库的副本(伴侣 .MDF、.LDF 对)附加到 SQL Server,发现 SSMS 期望数据库驻留在
c:\program files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabaseName.MDF
这是 SQL Server 的“功能”吗?有没有办法在单独的目录中管理单个数据库?还是我必须将所有客户数据库放在同一个目录中? (我希望有比这更好的控制)。
注意:我目前使用的是 SQL Server Express,但仅用于测试目的。生产数据库将是 SQL Server 2008,企业版。所以“用户实例”不是一个选项。
【问题讨论】:
-
此目录可能是您的实例的基本目录,但您可以从当前登录的 sql server 用户有权访问的每个位置添加 mdf 文件。如果您无法从 SSMS 中看到文件,则可能是文件权限存在问题。尝试以管理员身份运行 SMSS,看看一切正常,然后对文件权限进行 wrk,以便普通用户可以访问。
-
@LukLed:我可以访问他们新目录中的文件,但是当我尝试使用 SSMS 附加它们时,它给我的错误是它在基目录中找不到这些文件。
-
如何登录 SSMS? Windows 身份验证?从每个位置附加文件都没有技术障碍,因此您可能必须在其他地方找到解决方案。
标签: c# sql-server linq-to-sql multi-tenant