Wie setze ich eine SQL Server-Verbindungszeichenfolge?

92

Ich entwickle eine einfache C # -Anwendung und möchte Folgendes wissen: Wenn ich meine Anwendung mit SQL Server auf meinem PC verbinde, kenne ich die Verbindungszeichenfolge (Servername, Kennwort usw.), aber wenn ich sie mit einer anderen verbinde PC ist die SQL Server-Verbindungszeichenfolge unterschiedlich. Gibt es in SQL Server ein allgemeines Konto mit einem Standardkonto, das eine Verbindung herstellen kann? Ich habe von einem saKonto in SQL Server gehört. Was ist das sa?

Roshan
quelle
4
Sie möchten niemals einen Standardkontonutzernamen und ein Standardkennwort verwenden, um den Zugriff auf SQL Server oder einen anderen Verbindungstyp einzurichten.
Jordanhill123
3
SAmittlere SQL Server sys_adminRolle
Elshan
1
Können Sie die Windows-Authentifizierung anstelle der SQL Server-Authentifizierung verwenden? Dadurch müssten Benutzer-IDs und Kennwörter nicht vollständig verwendet werden.
Philip Sheard

Antworten:

126

.NET DataProvider - Standardverbindung mit Benutzername und Passwort

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 - Vertrauenswürdige Verbindung

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

Siehe Dokument .

Itachi
quelle
Wie kann ich dieses Format verwenden, aber einen Domänenbenutzer verwenden? Ich bekomme immer eine rote Unterstreichung, wenn ich user id=Domain\Unamedenke, dass es etwas mit ungültigen Escape-Zeichen zu tun hat. Wie soll ich das richtig machen?
Wairimu Murigi
@Wairimu Murigi Sie müssen dem Backslash entkommen, dh Benutzer-ID = Domain \\ Uname
John Hartley
@ Itachi: Entschuldigung für den Nekropost. Geben wir dies mit SQLCMD in die Windows-Befehlszeile ein?
MSIS
Mein Passwort enthält ;Zeichen
Kiquenet
@Kiquenet könnten Sie einfache oder doppelte Anführungszeichen versuchen , es zu wickeln, überprüfen Sie diese aus.
Itachi
28

Tatsächlich können Sie die SqlConnectionStringBuilderKlasse verwenden, um Ihre Verbindungszeichenfolge zu erstellen . Um die Verbindungszeichenfolge zu erstellen , müssen Sie ein Objekt daraus instanziieren SqlConnectionStringBuilderund deren Eigenschaften mit den Parametern festlegen, mit denen Sie eine Verbindung zur Datenbank herstellen. Anschließend können Sie die Verbindungszeichenfolge aus der ConnectionStringEigenschaft aus dem SqlConnectionStringBuilderObjekt abrufen, wie in diesem Beispiel gezeigt:

Beispielsweise:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

Sie können entweder den newOperator verwenden, um dies direkt zu machen.

Beispielsweise:

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

Sie können weitere Parameter hinzufügen, um Ihre Verbindungszeichenfolge zu erstellen . Denken Sie daran, dass die Parameter durch die in den SqlConnectionStringBuilderObjekteigenschaften festgelegten Werte definiert werden .

Sie können die Datenbankverbindungszeichenfolge auch aus der Verbindung von Microsoft Visual Studio mit der angehängten Datenbank abrufen. Wenn Sie die Datenbank auswählen, wird im Eigenschaftenfenster die Verbindungszeichenfolge angezeigt .

Hier finden Sie die vollständige Liste der Eigenschaften der SqlConnectionStringBuilderKlasse Seite auf der Microsoft MSDN-Site.

Über den Standardbenutzer von SQL Server bedeutet sa "Systemadministrator" und sein Kennwort variiert je nach SQL Server-Version. Auf dieser Seite können Sie sehen, wie sich das Passwort ändert.

SQL Server 2008 / R2 Express Benutzer: sa Kennwort: [leeres Kennwort - Feld leer lassen, um eine Verbindung herzustellen]

SQL Server 201x Express Benutzer: sa Kennwort: Kennwort123

SQL Server 20xx Web- oder Standardbenutzer: sa Kennwort : Entspricht dem Kennwort Ihres Administrators oder Rootbenutzers zum Zeitpunkt der Bereitstellung des VDS.

Sie können mit log in sa am Anfang von SQL Server Database Manager in diesem Anmeldefenster Benutzer. Wie in diesem Bild:

Anmeldebeispiel

CryogenicNeo
quelle
14

.NET-Datenprovider - Relativer Standardpfad - Standardverbindung

 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-Datenprovider - Relativer Standardpfad - Vertrauenswürdige Verbindung

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

.NET-Datenprovider - Benutzerdefinierter relativer Pfad - Standardverbindung

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

.NET-Datenprovider - Benutzerdefinierter relativer Pfad - Vertrauenswürdige Verbindung

 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
quelle
10

Sie können die Verbindungszeichenfolge wie folgt verwenden und müssen nur Ihren Datenbanknamen hinzufügen.

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

Dies sind einige Dinge, die Sie beachten müssen, wenn Sie auf einem anderen Computer eine Verbindung zu SQL Server herstellen.

  • Host / IP-Adresse des Geräts
  • Erstkatalog (Datenbankname)
  • Gültiger Benutzername / Passwort

Sehr oft wird SQL Server als Standardintance ausgeführt. Dies bedeutet, dass Sie einfach den Hostnamen / die IP-Adresse angeben können. Es kann jedoch vorkommen, dass der Server als benannte Instanz ausgeführt wird (z. B. SQL Express). In diesem Szenario müssen Sie den Hostnamen \ Instanznamen angeben.

Scartag
quelle
5

Sie müssen verstehen, dass ein Datenbankserver oder DBA nicht möchte, dass nur jeder eine Verbindung herstellen oder den Inhalt des Servers ändern kann. Dies ist der gesamte Zweck von Sicherheitskonten. Wenn ein einzelner Benutzername / pwd auf nur einem Computer funktionieren würde, würde dies keinen Schutz bieten. Das "sa", von dem Sie gehört haben, funktioniert nicht mit SQL Server 2005, 2008 oder 2012. Bei früheren Versionen sind Sie sich jedoch nicht sicher. Ich glaube, irgendwo in den frühen Tagen von SQL Server war der Standardbenutzername und das Standard-PWD sa / sa, aber das ist nicht mehr der Fall.

Zu Ihrer Information, Datenbanksicherheit und Rollen sind heutzutage viel komplizierter. Möglicherweise möchten Sie die Details der Windows-basierten Authentifizierung untersuchen. Wenn Ihr SQL Server dafür konfiguriert ist, benötigen Sie keinen Benutzernamen / pwd in der Verbindungszeichenfolge, um eine Verbindung zu ihm herzustellen. Alles, was Sie ändern müssen, ist der Name des Servercomputers, und dieselbe Verbindungszeichenfolge funktioniert auf beiden Computern, vorausgesetzt, beide haben natürlich denselben Datenbanknamen.

Punkt net
quelle
sa ist das Sysadmin-Konto für SQL Server. Wenn es mit SQL Server-Authentifizierung oder Mixed-Mode-Authentifizierung installiert wurde, müssen Sie ein sa-Konto einrichten. Zum späteren Nachschlagen finden Sie hier eine Anleitung zum Einrichten des sa-Kontos, wenn es nicht mit aktivierter SQL Server-Authentifizierung installiert wurde.
iCodeSometime
5

Sie können entweder die Windows-Authentifizierung verwenden, wenn sich Ihr Server in der Domäne befindet, oder die SQL-Authentifizierung. Sa - ist ein Systemadministrator, das Stammkonto für die SQL Server-Authentifizierung. Es ist jedoch eine schlechte Praxis, wenn Sie Ihre Kunden vernetzen. Sie sollten Ihre eigenen Konten erstellen und diese verwenden, um eine Verbindung zu Ihrem SQL herzustellen. In jeder Verbindung legen Sie die Kontoanmeldung , das Kennwort und die Standarddatenbank fest , die Sie verbinden möchten.

Alex
quelle
5

saist ein Systemadministratorkonto, das standardmäßig mit einem SQL Server geliefert wird. Wie Sie vielleicht bereits wissen, können Sie sich auf zwei Arten bei SQL Server anmelden.

Screenshot von SQL Server Management Studio

Daher gibt es Verbindungszeichenfolgen, die für jedes Szenario geeignet sind (z. B. Windows-Authentifizierung, localdb usw.). Verwenden Sie https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlserver , um Ihre Verbindungszeichenfolge zu erstellen. Dies sind XML-Tags. Sie benötigen nur den Wert von connectionString

Menuka Ishan
quelle
3

Wir können einfach eine Verbindung zur Datenbank herstellen:

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

Z.B:

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

Probier diese

VLB DE MEL
quelle