web-dev-qa-db-fra.com

Comment définir la chaîne de connexion SQL Server?

Je développe une application C # simple et j'aimerais savoir ceci: lorsque je connecte mon application à SQL Server sur mon PC, je connais la chaîne de connexion (nom du serveur, mot de passe, etc.), mais lorsque je la connecte à un autre PC, la chaîne de connexion SQL Server est différente. Existe-t-il un compte commun dans SQL Server fourni avec un compte par défaut pouvant se connecter? J'ai entendu parler du compte sa dans SQL Server. Qu'est-ce que sa?

76
Roshan

// .NET DataProvider - Connexion standard avec nom d'utilisateur et mot de passe

using System.Data.SqlClient;

SqlConnection conn = new SqlConnection();
conn.ConnectionString =
"Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"User id=UserName;" +
"Password=Secret;";
conn.Open();

// Fournisseur de données .NET - Connexion sécurisée

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

En fait, vous pouvez utiliser la classe SqlConnectionStringBuilder pour construire votre chaîne de connexion . Pour construire la chaîne de connexion , vous devez instancier un objet à partir de cette SqlConnectionStringBuilder et définir leurs propriétés avec les paramètres que vous utilisez pour vous connecter à la Base de données. Ensuite, vous pouvez obtenir la chaîne de connexion à partir de la propriété ConnectionString à partir de l'objet SqlConnectionStringBuilder, comme indiqué dans cet exemple:

Par exemple:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

Vous pouvez soit utiliser l'opérateur new pour le créer directement.

Par exemple:

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

Vous pouvez ajouter plus de paramètres pour construire votre chaîne de connexion . N'oubliez pas que les paramètres sont définis par les valeurs définies dans les propriétés de l'objet SqlConnectionStringBuilder.

Vous pouvez également obtenir la chaîne de connexion à la base de données à partir de la connexion de Microsoft Visual Studio avec la base de données attachée. Lorsque vous sélectionnez la base de données, la chaîne de connexion est affichée dans le panneau des propriétés.

La liste complète des propriétés de la classe SqlConnectionStringBuilder figure dans cette page du site Microsoft MSDN.

À propos de l'utilisateur par défaut de SQL Server, sa signifie "administrateur système" et son mot de passe varie en fonction de la version de SQL Server. Dans cette page vous pouvez voir comment le mot de passe varie.

Utilisateur SQL Server 2008/R2 Express: sa Mot de passe: [mot de passe vide - laissez ce champ vide pour vous connecter. ]

Utilisateur SQL Server 201x Express: sa Mot de passe: Mot de passe 123

Utilisateur Web standard ou serveur SQL Server 20xx: sa Mot de passe: sera identique à votre administrateur ou à votre compte root. mot de passe de l'utilisateur au moment de la mise en service du VDS.

Vous pouvez vous connecter avec utilisateur sa dans cette fenêtre de connexion au démarrage du gestionnaire de base de données SQL Server. Comme dans cette image:

Log in example

19
CryogenicNeo

Fournisseur de données .NET - Chemin relatif par défaut - Connexion standard

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

Fournisseur de données .NET - Chemin relatif par défaut - Connexion sécurisée

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

Fournisseur de données .NET - Chemin relatif personnalisé - Connexion standard

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

Fournisseur de données .NET - Chemin relatif personnalisé - Connexion sécurisée

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

Vous devez vous soucier de plusieurs choses lors de la connexion à SQL Server sur un autre ordinateur.

  • Adresse IP/hôte de la machine
  • Catalogue initial (nom de la base de données)
  • Nom d'utilisateur/mot de passe valide

Très souvent, le serveur SQL peut être exécuté par défaut, ce qui signifie que vous pouvez simplement spécifier le nom d’hôte/adresse IP, mais vous pouvez être confronté à un scénario dans lequel il s’exécute en tant qu’instance nommée (par exemple, Sql Express). Dans ce scénario, vous devrez spécifier hostname\nom d'instance.

7
scartag

Vous pouvez utiliser la chaîne de connexion comme suit et vous devez uniquement ajouter votre nom de base de données.

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

Vous devez comprendre qu'un serveur de base de données ou un administrateur de base de données ne souhaite pas que quiconque puisse se connecter ou modifier le contenu du serveur. C'est tout le but des comptes de sécurité. Si un seul nom d'utilisateur/pwd pouvait fonctionner sur n'importe quelle machine, il ne fournirait aucune protection. Cette "chose" dont vous avez entendu parler ne fonctionne pas avec SQL Server 2005, 2008 ou 2012. Vous n'êtes pas sûr des versions précédentes. Je pense que quelque part dans les débuts de SQL Server, le nom d'utilisateur et le mot de passe par défaut étaient sa/sa, mais ce n'est plus le cas.

Pour votre information, la sécurité des bases de données et les rôles sont beaucoup plus compliqués de nos jours. Vous voudrez peut-être examiner les détails de l'authentification basée sur Windows. Si votre serveur SQL est configuré pour cela, vous n'avez pas besoin de nom d'utilisateur/mot-clé dans la chaîne de connexion pour vous y connecter. Tout ce que vous devez changer est le nom de la machine du serveur et la même chaîne de connexion fonctionnera avec vos deux machines, étant donné que les deux ont le même nom de base de données, bien sûr.

5
dotNET

Vous pouvez utiliser l'authentification Windows, si votre serveur est dans le domaine, ou l'authentification SQL. Sa - est un administrateur système, le compte racine pour l'authentification du serveur SQL. Mais c’est une mauvaise pratique à utiliser si vous voulez parler à vos clients. Vous devez créer vos propres comptes et les utiliser pour vous connecter à votre code SQL. Dans chaque connexion, vous définissez connexion au compte, son mot de passe et le base de données par défaut, vous souhaitez vous connecter.

5
Alex

sa est un compte d'administrateur système fourni avec SQL Server par défaut. Comme vous le savez peut-être déjà, vous pouvez utiliser deux méthodes pour vous connecter à SQL Server.

screen shot of SQL Server Management Studio

Par conséquent, il existe des chaînes de connexion adaptées à chaque scénario (telles que l'authentification Windows, localdb, etc.). Utilisez https://msdn.Microsoft.com/en-us/library/jj653752 (v = vs.110) .aspx # sqlserver pour créer votre chaîne de connexion. Ce sont des balises XML. Vous avez juste besoin de la valeur de connectionString

5
Menuka Ishan

nous pouvons simplement nous connecter à la base de données en tant que ...

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

par exemple:

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

Nous pouvons simplement nous connecter à la base de données:

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

Par exemple.:

string connectionString = @"uid=spacecraftU1;pwd=Appolo11;
                            database=spacecraft_db;
                            server=DESKTOP-99K0FRS\\PRANEETHDB";
SqlConnection con = new SqlConnection(connectionString);
0
Praneeth Gopinathan