C# 如何设置SQL Server连接字符串?

C# 如何设置SQL Server连接字符串?,c#,sql-server,connection-string,sa,C#,Sql Server,Connection String,Sa,我正在开发一个简单的C#应用程序,我想知道这一点:当我在PC上将我的应用程序连接到SQL Server时,我知道连接字符串(服务器名称、密码等),但当我将其连接到另一台PC时,SQL Server连接字符串是不同的。SQL Server中是否有可以连接的默认帐户附带的公用帐户 我听说过SQL Server中的sa帐户。什么是sa?当在另一台机器上连接到SQL Server时,需要担心很多事情 计算机的主机/IP地址 初始目录(数据库名称) 有效的用户名/密码 通常SQL Server可能作为

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


我听说过SQL Server中的
sa
帐户。什么是
sa

当在另一台机器上连接到SQL Server时,需要担心很多事情

  • 计算机的主机/IP地址
  • 初始目录(数据库名称)
  • 有效的用户名/密码

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

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

你听说过的那个“sa”东西,不适用于,或者。我不确定以前的版本。我相信在SQLServer早期的某个地方,默认用户名和密码曾经是sa/sa,但现在已经不是这样了


仅供参考,如今数据库安全和角色要复杂得多。您可能希望了解基于Windows的身份验证的详细信息。如果为SQL Server进行了配置,则连接字符串中不需要任何用户名/密码。您只需更改服务器计算机名,并且如果两台计算机的数据库名称相同,则相同的连接字符串将适用于这两台计算机。

如果服务器位于域中,则可以使用Windows身份验证,也可以使用SQL server身份验证。Sa是系统管理员,是SQL Server身份验证的根帐户。但是使用if连接客户是一种不好的做法

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

.NET DataProvider--使用用户名和密码的标准连接 .NET数据提供程序--受信任的连接
请参阅。

.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();
 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();
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();  
 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();

.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();
 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();
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();  
 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();

.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();
 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();
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();  
 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();

.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();
 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();
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();  
 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
是SQL Server默认附带的系统管理员帐户。正如您可能已经知道的,您可以使用两种方式登录到SQL Server


因此,存在适合每个场景的连接字符串(如Windows身份验证、localdb等)。用于构建连接字符串。这些是XML标记。您只需要一个值connectionString

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

例如:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);
SqlConnection conn = new SqlConnection(
    new SqlConnectionStringBuilder ()
    {
        DataSource = "ServerName",
        InitialCatalog = "DatabaseName",
        UserID = "UserName",
        Password = "UserPassword"
    }.ConnectionString
);
string connectionString = @"uid=spacecraftU1;pwd=Appolo11;
                            database=spacecraft_db;
                            server=DESKTOP-99K0FRS\\PRANEETHDB";
SqlConnection con = new SqlConnection(connectionString);
您可以使用
new
操作符直接执行此操作

例如:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);
SqlConnection conn = new SqlConnection(
    new SqlConnectionStringBuilder ()
    {
        DataSource = "ServerName",
        InitialCatalog = "DatabaseName",
        UserID = "UserName",
        Password = "UserPassword"
    }.ConnectionString
);
string connectionString = @"uid=spacecraftU1;pwd=Appolo11;
                            database=spacecraft_db;
                            server=DESKTOP-99K0FRS\\PRANEETHDB";
SqlConnection con = new SqlConnection(connectionString);
您可以添加更多参数来构建连接字符串。请记住,参数是由
SqlConnectionStringBuilder
对象属性中设置的值定义的

您还可以从Microsoft Visual Studio与附加数据库的连接中获取数据库连接字符串。选择数据库时,“属性”面板中将显示连接字符串

下面列出了
SqlConnectionStringBuilder
类的完整属性列表

关于SQL Server的默认用户,sa表示“系统管理员”,其密码因SQL Server版本而异。在上,您可以看到密码的变化

SQL Server 2008/R2 Express用户:sa密码:[空白密码]- 将字段留空以连接]
SQL Server 201x Express用户:sa密码:Password123
SQL Server 20xx Web或标准用户:sa密码:将相同 作为VDS运行时的管理员或root用户密码 供应

在SQL Server数据库管理器启动时,您可以使用sa用户在此登录窗口中登录。如图所示:


您可以按如下方式使用连接字符串,只需添加数据库名称即可

string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";

试试这个

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

 uid=username;pwd=password;database=databasename;server=servername
例如:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);
SqlConnection conn = new SqlConnection(
    new SqlConnectionStringBuilder ()
    {
        DataSource = "ServerName",
        InitialCatalog = "DatabaseName",
        UserID = "UserName",
        Password = "UserPassword"
    }.ConnectionString
);
string connectionString = @"uid=spacecraftU1;pwd=Appolo11;
                            database=spacecraft_db;
                            server=DESKTOP-99K0FRS\\PRANEETHDB";
SqlConnection con = new SqlConnection(connectionString);

您永远不想使用默认帐户用户名和密码来设置对SQL Server或任何连接类型的访问权限。
SA
表示SQL Server
sys\u admin
role您可以使用Windows身份验证而不是SQL Server身份验证吗?这样可以避免同时使用用户名和密码。我如何使用这种格式而使用域用户?当我使用
user id=Domain\Uname
时,我一直会得到一条红色下划线,我想这是应该做的