Bagaimana cara mengatur string koneksi SQL Server?

96

Saya sedang mengembangkan aplikasi C # sederhana, saya ingin tahu ini: Ketika saya menghubungkan aplikasi saya ke SQL Server di PC saya, saya tahu string koneksi (nama server, kata sandi, dll.), Tetapi ketika saya menghubungkannya ke yang lain PC, string koneksi SQL Server berbeda. Apakah ada akun umum di SQL Server yang datang dengan akun default yang dapat tersambung? Saya pernah mendengar tentang saakun di SQL Server, apa itu sa?

Roshan
sumber
5
Anda tidak ingin menggunakan nama pengguna dan kata sandi akun default untuk mengatur akses ke SQL Server atau jenis koneksi apa pun dalam hal ini.
jordanhill123
4
SAberarti sys_adminperan server sql
Elshan
2
Dapatkah Anda menggunakan Autentikasi Windows daripada autentikasi SQL Server? Itu akan menghindari keharusan untuk menggunakan userid dan password secara bersamaan.
Philip Sheard

Jawaban:

132

.NET DataProvider - Koneksi Standar dengan nama pengguna dan kata sandi

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 - Sambungan Terpercaya

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

Lihat dok .

Itachi
sumber
1
Bagaimana saya bisa menggunakan format ini tetapi menggunakan pengguna domain? Saya terus mendapat garis bawah merah ketika saya menggunakan user id=Domain\Unamesaya pikir itu ada hubungannya dengan karakter melarikan diri yang tidak valid, bagaimana saya harus melakukannya dengan benar?
Wairimu Murigi
1
@Wairimu Murigi Anda harus menghindari garis miring terbalik yaitu id pengguna = Domain \\ Uname
John Hartley
1
@ Itachi: Maaf untuk necropost. Apakah kita memasukkan ini di baris perintah Windows menggunakan SQLCMD?
MSIS
1
Kata sandi saya mengandung ;karakter
Kiquenet
1
@Kiquenet Anda dapat mencoba tanda kutip tunggal atau ganda untuk membungkusnya, lihat ini .
Itachi
30

Sebenarnya Anda dapat menggunakan SqlConnectionStringBuilderkelas untuk membangun string koneksi Anda . Untuk membuat string koneksi , Anda perlu membuat instance objek dari itu SqlConnectionStringBuilderdan menyetel propertinya dengan parameter yang Anda gunakan untuk menyambungkan ke DataBase. Kemudian Anda bisa mendapatkan string koneksi dari ConnectionStringproperti dari SqlConnectionStringBuilderobjek, seperti yang ditunjukkan dalam contoh ini:

Sebagai contoh:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

Anda dapat menggunakan newoperator untuk membuatnya secara langsung.

Sebagai contoh:

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

Anda dapat menambahkan lebih banyak parameter untuk membangun string koneksi Anda . Ingatlah bahwa parameter ditentukan oleh nilai yang ditetapkan di SqlConnectionStringBuilderproperti objek.

Anda juga bisa mendapatkan string koneksi database dari koneksi Microsoft Visual Studio dengan DB terlampir. Ketika Anda memilih DB, di panel properti ditampilkan string koneksi .

Daftar lengkap properti SqlConnectionStringBuilderkelas tercantum di halaman ini dari situs Microsoft MSDN.

Tentang pengguna default SQL Server, sa berarti "administrator-sistem" dan kata sandinya bervariasi sesuai versi SQL Server. Di halaman ini Anda dapat melihat bagaimana kata sandi bervariasi.

SQL Server 2008 / R2 Express Pengguna: sa Kata sandi: [kata sandi kosong - biarkan bidang kosong untuk menyambung]

SQL Server 201x Express Pengguna: sa Kata sandi: Kata sandi123

SQL Server 20xx Web atau Standar Pengguna: sa Kata sandi: akan sama dengan kata sandi administrator atau pengguna root Anda pada saat VDS disediakan.

Anda dapat login dengan sa pengguna di jendela login ini pada awal SQL Server Database Manager. Seperti di gambar ini:

Contoh log in

CryogenicNeo
sumber
15

Penyedia Data .NET - Jalur Relatif Default - Sambungan Standar

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

Penyedia Data .NET - Jalur Relatif Default - Sambungan Tepercaya

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

Penyedia Data .NET - Jalur Relatif Kustom - Sambungan Standar

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

Penyedia Data .NET - Jalur Relatif Kustom - Sambungan Tepercaya

 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
sumber
11

Anda dapat menggunakan string koneksi sebagai berikut dan Anda hanya perlu menambahkan nama database Anda.

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

Ada sejumlah hal yang perlu dikhawatirkan saat menyambung ke SQL Server di komputer lain.

  • Host / Alamat IP mesin
  • Katalog Awal (nama database)
  • Nama pengguna / kata sandi yang valid

Sangat sering SQL server dapat berjalan sebagai intance default yang berarti Anda dapat dengan mudah menentukan nama host / alamat ip tetapi Anda mungkin menghadapi skenario di mana itu berjalan sebagai contoh bernama (Sql Express misalnya). Dalam skenario ini Anda harus menentukan nama host \ nama contoh.

bajingan
sumber
6

Anda dapat menggunakan otentikasi Windows, jika server Anda dalam Domain, atau otentikasi Sql. Sa - adalah Administrator Sistem, akun root untuk otentikasi server SQL. Tetapi itu adalah praktik yang buruk untuk digunakan jika untuk menghubungkan klien Anda. Anda harus membuat akun Anda sendiri, dan menggunakannya untuk terhubung ke SQL Anda. Di setiap koneksi Anda mengatur login akun , kata sandinya dan database default , Anda ingin menghubungkan.

Alex
sumber
6

saadalah akun administrator sistem yang dilengkapi dengan sql server secara default. Seperti yang mungkin sudah Anda ketahui, Anda dapat menggunakan dua cara untuk masuk ke SQL Server.

screen shot dari SQL Server Management Studio

Oleh karena itu ada string koneksi yang cocok untuk setiap skenario (seperti otentikasi windows, localdb dll). Gunakan https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlserver untuk membuat string koneksi Anda. Ini adalah tag XML. Anda hanya perlu nilai connectionString

Menuka Ishan
sumber
5

Anda perlu memahami bahwa server database atau DBA tidak ingin sembarang orang dapat menyambungkan atau mengubah konten server. Ini adalah tujuan keseluruhan dari akun keamanan. Jika satu nama pengguna / pwd akan berfungsi di sembarang mesin, itu tidak akan memberikan perlindungan. Hal "sa" yang pernah Anda dengar, tidak berfungsi dengan SQL Server 2005, 2008, atau 2012. Namun, tidak yakin tentang versi sebelumnya. Saya percaya di suatu tempat di hari-hari awal SQL Server, nama pengguna default dan pwd dulu adalah sa / sa, tetapi itu tidak lagi terjadi.

Perlu diketahui, keamanan dan peran database jauh lebih rumit sekarang. Anda mungkin ingin melihat detail otentikasi berbasis Windows. Jika SQL Server Anda dikonfigurasi untuk itu, Anda tidak memerlukan nama pengguna / pwd apa pun dalam string koneksi untuk menyambungkannya. Yang perlu Anda ubah hanyalah nama mesin server dan string koneksi yang sama akan berfungsi dengan kedua mesin Anda, tentu saja keduanya memiliki nama db yang sama.

dotNET
sumber
1
sa adalah akun sysadmin untuk SQL Server. Jika itu diinstal dengan otentikasi server sql, atau otentikasi mode campuran, Anda diharuskan untuk membuat akun sa. Untuk referensi di masa mendatang, berikut adalah panduan tentang cara mengatur akun sa jika tidak diinstal dengan otentikasi server sql dihidupkan.
iCodeSometime
4

Kami cukup terhubung ke database:

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

Misalnya:

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

Coba yang ini

VLB DE MEL
sumber