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
例如:
Run Code Online (Sandbox Code Playgroud)SqlConnectionStringBuilder sConnB = new SqlConnectionStringBuilder () { DataSource = "ServerName", InitialCatalog = "DatabaseName", UserID = "UserName", Password = "UserPassword" }.ConnectionString SqlConnection conn = new SqlConnection(sConnB.ConnectionString);
您可以使用new运算符直接进行此操作.
例如:
Run Code Online (Sandbox Code Playgroud)SqlConnection conn = new SqlConnection( new SqlConnectionStringBuilder () { DataSource = "ServerName", InitialCatalog = "DatabaseName", UserID = "UserName", Password = "UserPassword" }.ConnectionString );
您可以添加更多参数来构建连接字符串.请记住,参数由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)
我们可以像这样简单地连接到数据库:
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)
在另一台计算机上连接到SQL Server时,需要担心的是很多事情.
通常SQL服务器可能作为默认的intance运行,这意味着您可以简单地指定主机名/ IP地址,但您可能会遇到它作为命名实例(例如Sql Express)运行的场景.在这种情况下,您必须指定hostname\instance name.
您可以按如下方式使用连接字符串,只需添加数据库名称即可.
string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";
Run Code Online (Sandbox Code Playgroud)
您需要了解数据库服务器或DBA不希望任何人能够连接或修改服务器的内容.这是安全帐户的全部目的.如果单个用户名/密码可以在任何机器上运行,它将不提供任何保护.您听说过的那个"sa"不适用于SQL Server 2005,2008或2012.但不确定以前的版本.我相信在SQL Server的早期某个地方,默认的用户名和pwd曾经是sa/sa,但现在不再是这样了.
仅供参考,数据库安全性和角色现在要复杂得多.您可能需要查看基于Windows的身份验证的详细信息.如果为其配置了SQL Server,则连接字符串中不需要任何用户名/密码来连接它.您需要更改的只是服务器计算机名称,并且相同的连接字符串将适用于您的两台计算机,因为它们当然具有相同的数据库名称.
您可以使用Windows身份验证(如果您的服务器位于域中)或Sql身份验证。Sa-是系统管理员,是SQL Server身份验证的根帐户。但是,如果使用if来使客户建立联系,则是一种不良做法。您应该创建自己的帐户,并使用它们连接到SQL。在每个连接中,您都设置了帐户login,其密码和要连接的默认数据库。
sa是默认情况下sql server附带的系统管理员帐户。如您所知,您可以使用两种方法登录SQL Server。
因此,存在适用于每种情况的连接字符串(例如Windows身份验证,localdb等)。使用https://msdn.microsoft.com/zh-cn/library/jj653752(v=vs.110).aspx#sqlserver构建连接字符串。这些是XML标签。您只需要connectionString的值