3

我有一个连接到 SQLServer Express 数据库文件的网站,用于成员资格和数据存储。所以我有两个 .mdf 文件。以下是连接字符串:

public static string ASPNETDB = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.mdf;Integrated Security=True;User Instance=True;User ID=;Password=; ";
public static string Dok = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\dok.mdf;Integrated Security=True;User Instance=True;User ID=;Password=; ";

现在,在删除并重新安装网站后,我在建立连接的部分遇到了许多错误。以下是错误:

Unable to open the physical file "C:\Inetpub\wwwroot\BSHHD\App_Data\aspnetdb_log.ldf". 
Operating system error 5: "5(failed to retrieve text for this error. Reason: 1815)".
Cannot open user default database. Login failed.
Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.
File activation failure. The physical file name "C:\Inetpub\wwwroot\BSHHD\App_Data  
\aspnetdb_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users when the database 
was shutdown, no checkpoint occurred to the database, or the database was read-only.   
This error could occur if the transaction log file was manually deleted or lost due to 
a hardware or environment failure.

这很奇怪,因为我没有对网站进行任何更改。我只是从 IIS 中删除它并重新安装它。有人建议我设置用户名和密码并删除集成安全性。但我不知道如何为数据文件设置用户名/密码。

4

1 回答 1

8

使用SQL Management Studio将数据库 ASPNETDB.mdf 添加到 SQL Express 您可以从 Microsoft Web 平台安装程序下载它。

打开 SQL Management Studio 右键单击​​数据库 > 附加 > 添加 mdf 和日志文件(最好将它们放在其他位置,然后是站点目录。

在 MSSQL 中,您可以轻松设置用户名和密码,打开 SQL 管理工作室。

登录到管理工作室:展开安全>登录>写入点击登录“新登录”

登录名:例如 logmein 使其成为 SQL Server 身份验证 设置密码 删除强制

在左侧,您将拥有User Mapping 选择要连接的数据库并授予写入权限,例如,如果此用户可以写入数据库,您将希望将其设置为 datawriter 或 db_owner ,这是更高的权限:

数据库内置角色是:

public – 默认的授权集

db_owner – 允许对指定数据库执行任何操作

db_oddladmin – 允许创建或修改数据库的新对象(所谓的 DDL 操作);您应该注意用户不必拥有

db_owner 授权这样做

db_datareader – 允许读取任何表

db_datawriter – 允许写入任何表

db_denydatareader – 禁止读取表(公开授权外卖)

dDb_denydatawriter – 禁止写表

将数据库添加到 SQL 后:可以在 web.config 中添加

<add name="ASPNETDB" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=ASPNETDB.mdf;User ID=yourusername;Password=yourpassword" providerName="System.Data.SqlClient" />
<add name="Dok " connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=dok.mdf;User ID=yourusername;Password=yourpassword" providerName="System.Data.SqlClient" />

或者,如果您更喜欢将它放在上面的代码中,它也可以工作。

问候,加布里埃尔

于 2012-07-24T06:05:54.377 回答