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

Ros*_*han 78 c# sql-server connection-string sa

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

Ita*_*chi 112

// .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();
Run Code Online (Sandbox Code Playgroud)

// .NET DataProvider - 可信连接

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


Cry*_*Neo 21

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

例如:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);
Run Code Online (Sandbox Code Playgroud)

您可以使用new运算符直接进行此操作.

例如:

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

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

您还可以从附带的DB的Microsoft Visual Studio连接中获取数据库连接字符串.选择数据库时,将在属性面板中显示连接字符串.

Microsoft MSDN站点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用户登录.就像在这张图片中:

登录示例


小智 14

.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();
Run Code Online (Sandbox Code Playgroud)

.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();
Run Code Online (Sandbox Code Playgroud)

.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();  
Run Code Online (Sandbox Code Playgroud)

.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();
Run Code Online (Sandbox Code Playgroud)


Pra*_*T T 8

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

 uid=username;pwd=password;database=databasename;server=servername
Run Code Online (Sandbox Code Playgroud)

例如:

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


sca*_*tag 7

在另一台计算机上连接到SQL Server时,需要担心的是很多事情.

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

通常SQL服务器可能作为默认的intance运行,这意味着您可以简单地指定主机名/ IP地址,但您可能会遇到它作为命名实例(例如Sql Express)运行的场景.在这种情况下,您必须指定hostname\instance name.


Cha*_*age 7

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

string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";
Run Code Online (Sandbox Code Playgroud)


dot*_*NET 5

您需要了解数据库服务器或DBA不希望任何人能够连接或修改服务器的内容.这是安全帐户的全部目的.如果单个用户名/密码可以在任何机器上运行,它将不提供任何保护.您听说过的那个"sa"不适用于SQL Server 2005,2008或2012.但不确定以前的版本.我相信在SQL Server的早期某个地方,默认的用户名和pwd曾经是sa/sa,但现在不再是这样了.

仅供参考,数据库安全性和角色现在要复杂得多.您可能需要查看基于Windows的身份验证的详细信息.如果为其配置了SQL Server,则连接字符串中不需要任何用户名/密码来连接它.您需要更改的只是服务器计算机名称,并且相同的连接字符串将适用于您的两台计算机,因为它们当然具有相同的数据库名称.


Ale*_*lex 5

您可以使用Windows身份验证(如果您的服务器位于域中)或Sql身份验证。Sa-是系统管理员,是SQL Server身份验证的根帐户。但是,如果使用if来使客户建立联系,则是一种不良做法。您应该创建自己的帐户,并使用它们连接到SQL。在每个连接中,您都设置了帐户login,其密码和要连接的默认数据库


Men*_*han 5

sa是默认情况下sql server附带的系统管理员帐户。如您所知,您可以使用两种方法登录SQL Server。

SQL Server Management Studio的屏幕截图

因此,存在适用于每种情况的连接字符串(例如Windows身份验证,localdb等)。使用https://msdn.microsoft.com/zh-cn/library/jj653752(v=vs.110).aspx#sqlserver构建连接字符串。这些是XML标签。您只需要connectionString的