SQL 服务器连接字符串问题

SQL Server Connection String issues

我在 AWS Windows 2016 服务器上。它预装了 SQL Server 2016。

我有一个 .NET 4.8 网站,我正在尝试将网站(在网络服务器上)连接到 SQL 服务器实例(也安装在网络服务器上)。

我有一个简单的 C# 函数来告诉我我的连接字符串是否有效(我尝试过的所有方法 returns 都是错误的)。

public static bool IsServerConnected(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        try
        {
            connection.Open();
            return true;
        }
        catch (SqlException)
        {
            return false;
        }
    }
}

private static string connect = ConfigurationManager.ConnectionStrings["db"].ConnectionString;

public static string connDb
{
    get { return connect; }
    set { connect = value; }
}

// Usage:
bool TestConnection = IsServerConnected(connDb);

这来自我的 web.config 文件(连接字符串)

[出于隐私原因,我只在字符串中包含 ****,我使用了实际的 SQL 服务器名称]:

<connectionStrings>
    <add name="db" 
         connectionString="Data Source=EC2AMAZ-84****;Initial Catalog=testdb;Integrated Security=True;Trusted_Connection=Yes;" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

这是来自 SQL Server Management Studio 的屏幕(我从网站所在的同一 Windows 服务器访问):

谁能帮帮我?我应该如何设置连接字符串?

编辑

根据我在下面收到的一些帮助,这是我目前所在的位置:

  1. 我运行创建新登录和角色的脚本
  2. 命令成功完成后,我退出了 SSMS,然后使用服务重新启动了 SSMS(见图 2)
  3. 我使用凭据登录 SSMS:'MyUser' 和 'P@ssword01'
  4. 我收到一条错误消息,指出登录成功但共享内存提供程序错误(SQL 服务器错误 223)

以下是一些有助于解决问题的提示:

  1. 确保您的服务器名称是正确的,例如,名称没有拼写错误。

  2. 请确保你的实例名称是正确的,实际上有这样的 目标机器上的一个实例。 (尝试使用连接字符串 像 . 连接到本地的实例 电脑。例如:.\SQLEXPRESS)

  3. 当您尝试连接到另一台服务器上的 SQL 服务器实例时, 确保服务器机器可以访问,例如 DNS 可以解析 正确,您可以 ping 服务器(并非总是如此)。

  4. 确保 SQL 浏览器服务在服务器上 运行。

  5. 如果服务器开启了防火墙,需要设置sqlbrowser.exe and/or UDP 端口 1434 异常。

创建登录并映射到数据库用户:

USE [master]    
GO

CREATE LOGIN [MyLogin] WITH PASSWORD=N'pwd', 
    DEFAULT_DATABASE=[master], 
    DEFAULT_LANGUAGE=[us_english], 
    CHECK_EXPIRATION=OFF, 
    CHECK_POLICY=OFF    
GO

 use [testdb];    
 create user MyUser from login MyLogin;    
 GO

use [testdb];    
exec sp_addrolemember 'db_owner', 'MyUser';
GO