How can I set an SQL Server connection string?

我正在开发一个简单的 C # 应用程序,我想知道这一点: 当我将我的应用程序连接到我的 PC 上的 SQL Server 时,我知道连接字符串(服务器名称、密码等) ,但是当我将它连接到另一台 PC 时,SQL Server 连接字符串是不同的。SQLServer 中是否有可以连接的默认帐户附带的公共帐户?

I have heard about the sa account in SQL Server. What is sa?

946017 次浏览

在另一台计算机上连接到 SQLServer 时需要担心的问题有很多。

  • Host/IP address of the machine
  • 初始目录(数据库名称)
  • 有效的用户名/密码

通常情况下,SQL Server 可能作为默认实例运行,这意味着您可以简单地指定主机名/IP 地址,但是您可能会遇到这样一种情况: 它作为命名实例运行(例如 SQL Server Express Edition)。在这个场景中,您必须指定主机名/实例名。

您需要理解,数据库服务器或 DBA不希望任何人都能够连接或修改服务器的内容。这就是安全账户的全部用途。如果只有一个用户名/密码可以在任何机器上使用,那么它不会提供任何保护。

那个你听说过的“ sa”的东西,在 SQLServer2005二零零八年或者 二零一二年中不起作用。不过我对以前的版本不太确定。我相信在 SQL Server 早期的某个时候,默认的用户名和密码曾经是 好的/好的,但现在已经不是这样了。

仅供参考,数据库安全性和角色现在要复杂得多。您可能需要了解基于 Windows 的身份验证的详细信息。如果您的 SQLServer 配置了它,则不需要连接字符串中的任何用户名/密码就可以连接到它。所有您需要更改的是服务器机器名称和相同的连接字符串将工作在您的两台机器上,因为它们当然都有相同的数据库名称。

You can use either Windows authentication, if your server is in the domain, or SQL Server authentication. Sa is a system administrator, the root account for SQL Server authentication. But it is a bad practice to use if for connecting to your clients.

您应该创建自己的帐户,并使用它们连接到 SQLServer 实例。在设置的每个连接中,都要连接到 帐户登入、它的 密码默认数据库

.NET DataProvider ——带有用户名和密码的标准连接

using System.Data.SqlClient;


SqlConnection conn = new SqlConnection();
conn.ConnectionString =
"Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"User id=UserName;" +
"Password=Secret;";
conn.Open();

.NET DataProvider -- Trusted Connection

SqlConnection conn = new SqlConnection();
conn.ConnectionString =
"Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"Integrated Security=SSPI;";
conn.Open();

请参阅 文件

.NET 数据提供程序——默认相对路径——标准连接

 using System.Data.SqlClient;
var conn = new SqlConnection();
conn.ConnectionString =
"Data Source=.\SQLExpress;" +
"User Instance=true;" +
"User Id=UserName;" +
"Password=Secret;" +
"AttachDbFilename=|DataDirectory|DataBaseName.mdf;"conn.Open();

.NET 数据提供程序——默认相对路径——可信连接

 using System.Data.SqlClient;
var conn = new SqlConnection();
conn.ConnectionString =
"Data Source=.\SQLExpress;" +
"User Instance=true;" +
"Integrated Security=true;" +
"AttachDbFilename=|DataDirectory|DataBaseName.mdf;" conn.Open();

.NET 数据提供程序——自定义相对路径——标准连接

using System.Data.SqlClient;
AppDomain.CurrentDomain.SetData(
"DataDirectory", "C:\MyPath\");
var conn = new SqlConnection();
conn.ConnectionString =
"Data Source=.\SQLExpress;" +
"User Instance=true;" +
"User Id=UserName;" +
"Password=Secret;" +
"AttachDbFilename=|DataDirectory|DataBaseName.mdf;" conn.Open();

.NET 数据提供程序——自定义相对路径——可信连接

 using System.Data.SqlClient;
AppDomain.CurrentDomain.SetData(
"DataDirectory", "C:\MyPath\");
var conn = new SqlConnection();
conn.ConnectionString =
"Data Source=.\SQLExpress;" +
"User Instance=true;" +
"Integrated Security=true;" +
"AttachDbFilename=|DataDirectory|DataBaseName.mdf;" conn.Open();

sa是一个默认情况下随 SQLServer 附带的系统管理员帐户。您可能已经知道,可以使用两种方式登录到 SQLServer。

screen shot of SQL Server Management Studio

因此,有适合每种场景的连接字符串(例如 Windows 身份验证、 localdb 等)。使用 用于 ASP.NET Web 应用程序的 SQL Server 连接字符串生成连接字符串。这些是 XML 标记。你只需要一个值 ConnectionString

实际上,您可以使用 SqlConnectionStringBuilder类来构建 连接字符串。要构建 连接字符串,需要从该 SqlConnectionStringBuilder实例化一个对象,并使用用于连接到数据库的参数设置它们的属性。然后您可以从 SqlConnectionStringBuilder对象的 ConnectionString属性获得 连接字符串,如下例所示:

For example:

SqlConnectionStringBuilder sConnB = new SqlConnectionStringBuilder ()
{
DataSource = "ServerName",
InitialCatalog = "DatabaseName",
UserID = "UserName",
Password = "UserPassword"
}.ConnectionString


SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

You can either use the new operator to make that directly.

例如:

SqlConnection conn = new SqlConnection(
new SqlConnectionStringBuilder ()
{
DataSource = "ServerName",
InitialCatalog = "DatabaseName",
UserID = "UserName",
Password = "UserPassword"
}.ConnectionString
);

您可以添加更多的参数来构建 连接字符串。请记住,参数是由 SqlConnectionStringBuilder对象属性中设置的值定义的。

还可以从 MicrosoftVisualStudio 与附加数据库的连接中获取数据库连接字符串。选择数据库时,在属性面板中显示 connection string

SqlConnectionStringBuilder类的完整属性列表在此 从 MicrosoftMSDN 网站的中列出。

关于 SQLServer 的默认用户,好的的意思是“系统管理员”,其密码因 SQLServer 版本而异。在 这一页上你可以看到密码的变化。

SQL Server 2008/R2 Express 用户: 密码:[空白密码- 保留连接字段为空]
SQL Server 201x Express User: sa Password: Password123
SQL Server 20xx Web 或标准用户: sa Password:将是相同的 作为您的管理员或根用户密码时,VDS 是 准备好了。

您可以在此登录窗口的 SQLServer 数据库管理器开始时使用 好的用户登录。就像这张照片:

Log in example

您可以按照以下方式使用连接字符串,并且只需要添加数据库名称。

string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";
"ConnectionString":{
"Database_Name": "server=.;database=Database_Name;Integrated Security=true;"
},

试试这个

我们可以像这样简单地连接到数据库:

 uid=username;pwd=password;database=databasename;server=servername

例如:

string connectionString = @"uid=spacecraftU1;pwd=Appolo11;
database=spacecraft_db;
server=DESKTOP-99K0FRS\\PRANEETHDB";
SqlConnection con = new SqlConnection(connectionString);

如果有人正在寻找.NET Core 解决方案,那么您需要在 appsetings.json 中设置 sql 服务器连接字符串

{
"ConnectionStrings": {
"SQLServerAuth": "Data Source=Desktop-11\\SQL2017;Initial Catalog=SampleDB; User ID=sa;Password=pass1234"
}
}

资料来源: SQLServer 连接字符串示例

对于 Windows Auth 连接字符串将如下所示在 Appsetings.json 中

{
"ConnectionStrings": {
"WindowsAuth": "Data Source=Desktop-11\\SQL2017;Initial Catalog=SampleDB; Integrated Security=true",
}
}