我正在开发一个简单的C#应用程序,我想知道这个:当我在PC上将我的应用程序连接到SQL Server时,我知道连接字符串(服务器名称,密码等),但是当我连接时它到另一台PC,SQL Server连接字符串是不同的。 SQL Server中是否有可以连接的默认帐户的公共帐户?我在SQL Server中听说过sa
帐户,sa
是什么?
答案 0 :(得分:100)
// .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 - 可信连接
SqlConnection conn = new SqlConnection();
conn.ConnectionString =
"Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"Integrated Security=SSPI;";
conn.Open();
答案 1 :(得分:16)
实际上,您可以使用SqlConnectionStringBuilder
类来构建连接字符串。要构建连接字符串,您需要从SqlConnectionStringBuilder
实例化一个对象,并使用您用于连接到DataBase的参数设置它们的属性。然后,您可以从ConnectionString
对象的SqlConnectionStringBuilder
属性中获取连接字符串,如下例所示:
例如:
SqlConnectionStringBuilder sConnB = new SqlConnectionStringBuilder () { DataSource = "ServerName", InitialCatalog = "DatabaseName", UserID = "UserName", Password = "UserPassword" }.ConnectionString SqlConnection conn = new SqlConnection(sConnB.ConnectionString);
您可以使用new
运算符直接制作。
例如:
SqlConnection conn = new SqlConnection( new SqlConnectionStringBuilder () { DataSource = "ServerName", InitialCatalog = "DatabaseName", UserID = "UserName", Password = "UserPassword" }.ConnectionString );
您可以添加更多参数来构建连接字符串。请记住,参数是由SqlConnectionStringBuilder
对象属性中设置的值定义的。
此外,您可以从附带数据库的Microsoft Visual Studio连接中获取数据库连接字符串。选择数据库时,在属性面板中会显示连接字符串。
此page from the Microsoft MSDN site.
中列出了SqlConnectionStringBuilder
类的完整属性列表
关于SQL Server的默认用户, sa 表示"系统管理员"并且其密码因SQL Server版本而异。在此page中,您可以看到密码的变化情况。
SQL Server 2008 / R2 Express用户: sa密码: [空白密码 - 将字段留空以连接]
SQL Server 201x Express用户: sa密码: Password123
SQL Server 20xx Web或标准用户: sa密码:将是相同的 作为VDS时的管理员或root用户密码 提供。
您可以在SQL Server数据库管理器开头的此登录窗口中使用 sa 用户登录。就像在这张图片中一样:
答案 2 :(得分:7)
在另一台计算机上连接到SQL Server时,需要担心的一些事情。
SQL服务器通常可以作为默认的intance运行,这意味着你可以简单地指定主机名/ IP地址,但是你可能会遇到一个它作为命名实例运行的场景(例如Sql Express)。在这种情况下,您必须指定hostname \ instance name。
答案 3 :(得分:5)
您需要了解数据库服务器或DBA不希望任何人能够连接或修改服务器的内容。这是安全帐户的全部目的。如果单个用户名/密码可以在任何机器上运行,它将不提供任何保护。您听说过的那个“sa”不适用于SQL Server 2005,2008或2012.但不确定以前的版本。我相信在SQL Server的早期某个地方,默认的用户名和pwd曾经是sa / sa,但现在不再是这样了。
仅供参考,数据库安全性和角色现在要复杂得多。您可能需要查看基于Windows的身份验证的详细信息。如果为其配置了SQL Server,则连接字符串中不需要任何用户名/密码来连接它。您需要更改的只是服务器计算机名称,并且相同的连接字符串将适用于您的两台计算机,因为它们当然具有相同的数据库名称。
答案 4 :(得分:5)
如果服务器位于域中,则可以使用Windows身份验证,也可以使用Sql身份验证。 Sa - 是一个系统管理员,是SQL Server身份验证的root帐户。但是,如果用于连接您的客户,那么这是一种不好的做法。您应该创建自己的帐户,并使用它们连接到您的SQL。在每个连接中,您需要设置帐户登录,密码和默认数据库。
答案 5 :(得分:5)
您可以按如下方式使用连接字符串,而只需添加数据库名称。
string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";
答案 6 :(得分:4)
sa
是系统管理员帐户,默认情况下附带sql server。如您所知,您可以使用两种方法登录SQL Server。
因此,有适用于每种方案的连接字符串(例如Windows身份验证,localdb等)。使用https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlserver构建连接字符串。这些是XML标签。您只需要 connectionString
的值答案 7 :(得分:0)
我们可以简单地连接到数据库:
List<? super Exception> errLst = new ArrayList<>();
例如:
uid=username;pwd=password;database=databasename;server=servername
答案 8 :(得分:-2)
"ConnectionString":{
"Database_Name": "server=.;database=Database_Name;Integrated Security=true;"
},
尝试这个