Como definir a string de conexão do SQL Server?

93

Estou desenvolvendo um aplicativo C # simples, gostaria de saber o seguinte: Quando conecto meu aplicativo ao SQL Server em meu PC, sei a string de conexão (nome do servidor, senha etc.), mas quando o conecto a outro PC, a string de conexão do SQL Server é diferente. Existe uma conta comum no SQL Server que vem com a conta padrão que pode se conectar? Já ouvi falar de saconta no SQL Server, o que é sa?

Roshan
fonte
5
Você nunca deseja usar um nome de usuário e senha de conta padrão para configurar o acesso ao SQL Server ou qualquer tipo de conexão para esse assunto.
jordanhill123
4
SAsys_adminfunção de servidor sql média
Elshan
2
Você pode usar a autenticação do Windows em vez da autenticação do SQL Server? Isso evitaria o uso de IDs de usuário e senhas completamente.
Philip Sheard

Respostas:

128

.NET DataProvider - Conexão padrão com nome de usuário e senha

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 - conexão confiável

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

Consulte o doc .

Itachi
fonte
1
Como posso usar este formato, mas usar um usuário de domínio? Sempre recebo um sublinhado vermelho quando uso user id=Domain\Unameacho que tem a ver com caracteres de escape inválidos, como devo fazer isso corretamente?
Wairimu Murigi
1
@Wairimu Murigi Você tem que escapar da barra invertida, ou seja, id do usuário = Domínio \\ Uname
John Hartley
1
@Itachi: Desculpe pelo necropost. Nós inserimos isso na linha de comando do Windows usando SQLCMD?
MSIS
1
Minha senha contém ;personagem
Kiquenet 27/02
1
@Kiquenet Você pode tentar aspas simples ou duplas para embrulhá-lo, veja isto .
Itachi
29

Na verdade, você pode usar a SqlConnectionStringBuilderclasse para construir sua string de conexão . Para construir a string de conexão , você precisa instanciar um objeto a partir disso SqlConnectionStringBuildere definir suas propriedades com os parâmetros que você usa para se conectar ao DataBase. Em seguida, você pode obter a string de conexão da ConnectionStringpropriedade do SqlConnectionStringBuilderobjeto, conforme mostrado neste exemplo:

Por exemplo:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

Você pode usar o newoperador para fazer isso diretamente.

Por exemplo:

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

Você pode adicionar mais parâmetros para construir sua string de conexão . Lembre-se que os parâmetros são definidos pelos valores configurados nas SqlConnectionStringBuilderpropriedades do objeto.

Além disso, você pode obter a string de conexão do banco de dados a partir da conexão do Microsoft Visual Studio com o banco de dados anexado. Quando você seleciona o BD, no painel de propriedades é mostrada a string de conexão .

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

Sobre o usuário padrão do SQL Server, sa significa "administrador do sistema" e sua senha varia de acordo com a versão do SQL Server. Nesta página você pode ver como a senha varia.

Usuário do SQL Server 2008 / R2 Express: senha sa: [senha em branco - deixe o campo vazio para conectar]

Usuário do SQL Server 201x Express: senha sa: Password123

SQL Server 20xx Web ou usuário padrão: senha sa: será a mesma que sua senha de administrador ou usuário root no momento em que o VDS foi provisionado.

Você pode fazer logon com o usuário sa nesta janela de logon no início do SQL Server Database Manager. Como nesta imagem:

Exemplo de login

CryogenicNeo
fonte
15

Provedor de dados .NET - Caminho relativo padrão - Conexão padrão

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

Provedor de dados .NET - Caminho relativo padrão - Conexão confiável

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

Provedor de dados .NET - Caminho relativo personalizado - Conexão padrão

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

Provedor de dados .NET - Caminho relativo personalizado - Conexão confiável

 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();
Hemlata Gehlot
fonte
11

Você pode usar a string de conexão da seguinte maneira e só precisa adicionar o nome do banco de dados.

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

Há várias coisas com que se preocupar ao se conectar ao SQL Server em outra máquina.

  • Host / endereço IP da máquina
  • Catálogo inicial (nome do banco de dados)
  • Nome de usuário / senha válidos

Muitas vezes o servidor SQL pode estar sendo executado como uma instância padrão, o que significa que você pode simplesmente especificar o nome do host / endereço IP, mas você pode encontrar um cenário em que ele está sendo executado como uma instância nomeada (Sql Express por exemplo). Neste cenário, você terá que especificar hostname \ instance name.

scartag
fonte
6

Você precisa entender que um servidor de banco de dados ou DBA não deseja que qualquer pessoa seja capaz de se conectar ou modificar o conteúdo do servidor. Esse é todo o propósito das contas de segurança. Se um único nome de usuário / pwd funcionasse em qualquer máquina, ele não forneceria proteção. Você já ouviu falar disso e não funciona com o SQL Server 2005, 2008 ou 2012. Não tenho certeza sobre as versões anteriores. Eu acredito que em algum lugar nos primeiros dias do SQL Server, o nome de usuário padrão e pwd costumava ser sa / sa, mas não é mais o caso.

Para sua informação, a segurança e as funções do banco de dados são muito mais complicadas hoje em dia. Você pode querer examinar os detalhes da autenticação baseada no Windows. Se o seu SQL Server estiver configurado para isso, você não precisa de nenhum nome de usuário / senha na string de conexão para se conectar a ele. Tudo que você precisa mudar é o nome da máquina servidora e a mesma string de conexão funcionará com ambas as máquinas, desde que ambas tenham o mesmo nome de banco de dados, é claro.

ponto Net
fonte
1
sa é a conta sysadmin do SQL Server. Se ele foi instalado com autenticação de servidor sql ou autenticação de modo misto, é necessário configurar uma conta sa. Para referência futura, aqui está um guia sobre como configurar a conta sa se ela não foi instalada com a autenticação do servidor sql ativada.
iCodeSometime
6

Você pode usar a autenticação do Windows, se o seu servidor estiver no domínio, ou a autenticação Sql. Sa - é um administrador de sistema, a conta raiz para autenticação do servidor SQL. Mas é uma má prática usá-la para conectar seus clientes. Você deve criar suas próprias contas e usá-las para se conectar ao seu SQL. Em cada conexão, você define o login da conta , sua senha e o banco de dados padrão que deseja conectar.

Alex
fonte
6

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

captura de tela do SQL Server Management Studio

Portanto, existem cadeias de caracteres de conexão adequadas para cada cenário (como autenticação do Windows, localdb etc.). Use https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlserver para construir sua string de conexão. Estas são tags XML. Você só precisa do valor de connectionString

Menuka Ishan
fonte
4

Podemos simplesmente conectar ao banco de dados:

 uid=username;pwd=password;database=databasename;server=servername

Por exemplo:

string connectionString = @"uid=spacecraftU1;pwd=Appolo11;
                            database=spacecraft_db;
                            server=DESKTOP-99K0FRS\\PRANEETHDB";
SqlConnection con = new SqlConnection(connectionString);
Praneeth Gopinathan
fonte
-2
"ConnectionString":{
  "Database_Name": "server=.;database=Database_Name;Integrated Security=true;"
},

Tente este

VLB DE MEL
fonte