Como definir o texto de ligação do servidor SQL?

estou a desenvolver uma aplicação C# simples, gostaria de saber isto: quando ligo a minha aplicação ao servidor SQL no meu PC, conheço o texto de ligação (nome do servidor, senha, etc.), mas quando eu conecto-o a outro PC, a string de conexão do servidor SQL é diferente. Existe uma conta comum no servidor SQL que vem com a conta padrão que pode se conectar? Já ouvi falar da conta no servidor SQL, o que é sa?

Author: shA.t, 2013-03-26

8 answers

//. net DataProvider -- Standard Connection with username and password

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();
 89
Author: Itachi, 2014-07-21 11:45:13

. NET Data Provider -- Default Relative Path -- Standard Connection

 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 Data Provider -- Default Relative Path -- Trusted Connection

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

Fornecedor de dados do. NET -- local relativo Personalizado -- Ligação Normal

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

Fornecedor de dados do. NET -- local relativo Personalizado -- Ligação de confiança

 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();
 7
Author: Hemlata Gehlot, 2017-05-08 07:19:03

Na verdade, pode usar a classe SqlConnectionStringBuilder para compilar o seu texto de ligação . Para criar o texto de ligação , terá de instanciar um objecto desse SqlConnectionStringBuilder e definir as suas propriedades com os parâmetros que usa para se ligar à base de dados. Então você pode obter o texto de conexão da propriedade ConnectionString do objeto SqlConnectionStringBuilder, Como é mostrado neste exemplo:

Por exemplo:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

Pode utilizar o operador new para fazer isso directamente.

Por exemplo:

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

Pode adicionar mais parâmetros para compilar o seu texto de ligação . Lembre-se que os parâmetros são definidos pelos valores definidos nas propriedades do objeto SqlConnectionStringBuilder.

Também pode obter o texto de ligação da base de dados a partir da conecção do Microsoft Visual Studio com o DB em anexo. Quando seleccionar o DB, no painel de propriedades é mostrado o texto de ligação .

A completa a lista de propriedades da classe SqlConnectionStringBuilder está listada nesta página do site Microsoft MSDN.

Acerca do utilizador por omissão do servidor SQL, sa significa "administrador de sistema" e a sua senha varia de acordo com a versão do servidor SQL. Nesta página pode ver como a senha varia.

SQL Server 2008 / R2 Express User: senha sa: [senha em branco - deixar o campo em branco para ligar]

Servidor SQL 201x Express User: senha sa: Password123

Servidor SQL 20xx Web ou utilizador-Padrão: a senha sa: será a mesma como sua senha de administrador ou usuário root no momento em que o VDS foi prever.

Você pode entrar com sa nesta janela de autenticação no início do Gestor de bases de dados do servidor SQL. Como nesta imagem:

Log in example

 6
Author: CryogenicNeo, 2018-04-23 16:39:35

Eles são uma série de coisas com que se preocupar ao se conectar ao servidor SQL em outra máquina.

  • máquina / endereço IP da máquina
  • catálogo inicial (Nome da base de dados)
  • Nome de utilizador/Senha válidos

Muitas vezes, o servidor SQL pode estar a correr como um valor predefinido, o que significa que pode simplesmente indicar o nome da máquina/endereço ip, mas poderá encontrar um cenário em que esteja a correr como uma instância com nome (SQL Express, por exemplo). Neste cenário você terá que indique o nome da máquina\instance .

 5
Author: scartag, 2013-03-26 07:33:33

Você precisa entender que um servidor de banco de dados ou DBA não quer que qualquer um seja capaz de se conectar ou modificar o conteúdo do servidor. É este o objectivo das contas de segurança. Se um único utilizador/pwd trabalhasse em qualquer máquina, não proporcionaria protecção. Essa coisa de " sa " que você já ouviu falar, não funciona com o servidor SQL 2005, 2008 ou 2012. No entanto, Não tenho certeza sobre versões anteriores. Eu acredito que em algum lugar nos primeiros dias do servidor SQL, o nome de usuário padrão e pwd costumava ser sa / sa, mas já não é esse o caso.

Para tua informação, a segurança da base de dados e os papéis são muito mais complicados agora. Você pode querer olhar para os detalhes da autenticação baseada no Windows. Se o seu servidor SQL estiver configurado para ele, não precisa de nenhum utilizador/pwd no texto de ligação para se ligar a ele. Tudo que você precisa mudar é o nome da máquina do servidor e a mesma cadeia de conexão irá funcionar com ambas as suas máquinas, dado que ambas têm o mesmo nome db, é claro.

 4
Author: dotNET, 2013-03-26 07:35:23

Pode usar a autenticação do Windows, se o seu servidor estiver no domínio, ou a autenticação do Sql. Sa-é um administrador de sistema, a conta raiz para a autenticação do servidor SQL. Mas é uma má prática usar se para conetar os seus clientes. Você deve criar suas próprias contas, e usá-las para se conectar ao seu SQL. Em cada ligação, você configura a autenticação da conta , a sua Senha e aBase de dados por omissão , você deseja ligar-se.

 3
Author: Alex, 2013-03-26 07:36:41

sa é uma conta de administrador de sistema que vem com o servidor sql por padrão. Como você já deve saber, você pode usar duas maneiras de entrar no servidor SQL.

screen shot of SQL Server Management Studio

Portanto, existem cadeias de ligação que são adequadas para cada cenário(como autenticação do windows, localdb, etc.). Utilizar https://msdn.microsoft.com/en-us/library/jj653752 (v=vs. 110).aspx#sqlserver para compilar o seu texto de ligação. São etiquetas XML. Você só precisa de valor de ConnectionString

 1
Author: Menuka Ishan, 2018-05-22 09:44:05

Pode usar o texto de ligação como se segue e só precisa de adicionar o nome da sua base de dados.

string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";
 1
Author: Chamila Maddumage, 2018-07-26 09:26:34