【发布时间】:2023-03-16 21:24:01
【问题描述】:
我有一个 SQL Server Express 2008 R2 实例在我的本地电脑上运行。
- 身份验证是“混合”的,因此我可以使用 Windows 登录和使用 SQL Server 身份验证登录。
- 已启用命名管道
- TCP/IP 已启用
- 允许远程连接
我采取了以下步骤来创建新的登录名和数据库:
- 我使用 SQL Server Management Studio Express 登录并创建了新的登录名
- 我以新创建的登录名作为所有者创建了一个新数据库
正如您在最后一个屏幕截图中看到的,有一个 用户名“dbo”,它“属于”登录名“mylogin”。我正在尝试使用以下连接字符串,但它不起作用:
数据源=(本地)\sqlexpress;初始目录=newdb;用户ID=mylogin;密码=mypass
SQL Server Management studio express 中的错误日志指出:
用户“mylogin”登录失败。原因:无法打开明确指定的数据库。 [客户:xxx.xxx.x.xx]。 错误:18456,严重性:14,状态:38
如果我将连接字符串中的User id更改为“dbo”,则会报以下错误:
用户“dbo”登录失败。原因:找不到与提供的名称匹配的登录名。 [客户:xxx.xxx.x.xx]。
我现在开始变得非常疯狂。我只是不知道如何访问任何数据库了...我的 SQL Server 实例是否损坏?
仅当我尝试从我的 ASP.NET 应用程序连接时才会出现此问题。使用 SQL Server Management studio Express 进行连接,使用提到的凭据确实有效!
【问题讨论】:
-
您是否尝试从 Visual Studio Server Explorer 创建到新数据库的连接?如果这是 sql server express 更好,则将数据库放在 app data 文件夹下并将其附加到 sql server express
-
那么问题是您有两个 express 实例,一个是您直接安装的,一个是在 Visual Studio 中运行的?当您在 Management Studio 中连接时,
SELECT @@SERVERNAME会产生什么?如果它与您尝试从 ASP.NET 连接的不同,
标签: asp.net database-connection connection-string sql-server-express