Як встановити рядок підключення SQL Server?


93

Я розробляю просту програму C #, я хотів би знати це: коли я підключаю свою програму до SQL Server на своєму ПК, я знаю рядок підключення (ім'я сервера, пароль тощо), але коли я підключаю його до іншого ПК, рядок підключення SQL Server інший. Чи є загальний обліковий запис у SQL Server, який постачається з обліковим записом за замовчуванням, який можна підключити? Я чув про saобліковий запис у SQL Server, що це таке sa?


5
Ви ніколи не хочете використовувати ім’я користувача та пароль облікового запису за замовчуванням для налаштування доступу до SQL Server або будь-якого типу підключення.
jordanhill123

4
SAсередня sys_adminроль сервера SQL
Ельшан,

2
Чи можете ви використовувати автентифікацію Windows замість автентифікації SQL Server? Це дозволить уникнути необхідності використовувати ідентифікатори користувачів та паролі взагалі.
Філіп Шерд

Відповіді:


128

.NET DataProvider - стандартне з'єднання з іменем користувача та паролем

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 - надійне підключення

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

Зверніться до документації .


1
Як я можу використовувати цей формат, але використовувати користувача домену? Я продовжую отримувати червоне підкреслення, коли використовую, user id=Domain\Unameдумаю, це щось пов’язане з недійсними символами втечі, як мені це робити коректно?
Вайріму Муріджі

1
@Wairimu Murigi Вам потрібно уникнути зворотної косої риски, тобто ідентифікатор користувача = Домен \\ Uname
Джон Хартлі

1
@Itachi: Вибачте за некропост. Чи вводимо це в командний рядок Windows за допомогою SQLCMD?
MSIS

1
Мій пароль містить ;символ
Кікенет

1
@Kiquenet Ви можете спробувати одинарні або подвійні лапки, щоб обернути це, перевірте це .
Ітачі,

30

Насправді ви можете використовувати SqlConnectionStringBuilderклас для побудови рядка вашого з'єднання . Щоб побудувати рядок підключення , вам потрібно створити екземпляр об’єкта з нього SqlConnectionStringBuilderта встановити їх властивості з параметрами, які ви використовуєте для підключення до бази даних. Тоді ви можете отримати рядок з'єднання з ConnectionStringвластивості SqlConnectionStringBuilderоб'єкта, як показано в цьому прикладі:

Наприклад:

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

SqlConnection conn = new SqlConnection(sConnB.ConnectionString);

Ви можете використовувати newоператор, щоб зробити це безпосередньо.

Наприклад:

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

Ви можете додати більше параметрів для побудови рядка підключення . Пам'ятайте, що параметри визначаються значеннями, встановленими у SqlConnectionStringBuilderвластивостях об'єкта.

Також ви можете отримати рядок підключення до бази даних із з'єднання Microsoft Visual Studio із вкладеною БД. Коли ви вибираєте БД, на панелі властивостей відображається рядок з'єднання .

Повний список властивостей SqlConnectionStringBuilderкласу наведено на цій сторінці з сайту Microsoft MSDN.

Щодо користувача SQL Server за замовчуванням, sa означає "системний адміністратор", а його пароль змінюється залежно від версії SQL Server. На цій сторінці ви можете побачити, як змінюється пароль.

Користувач SQL Server 2008 / R2 Express: sa Пароль: [порожній пароль - залиште поле порожнім для підключення]

SQL Server 201x Експрес користувача: са Пароль: Password123

Веб-або стандартний користувач SQL Server 20xx: sa Пароль: буде однаковим з паролем адміністратора або кореневого користувача під час надання VDS.

Ви можете увійти в систему з користувачем sa у цьому вікні входу на початку диспетчера баз даних SQL Server. Як на цьому зображенні:

Приклад входу


15

Постачальник даних .NET - відносний шлях за замовчуванням - стандартне підключення

 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 - відносний шлях за замовчуванням - надійне підключення

 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 - Спеціальний відносний шлях - Стандартне підключення

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 - Спеціальний відносний шлях - Довірене з’єднання

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

11

Ви можете використовувати рядок з'єднання наступним чином, і вам потрібно лише додати ім'я бази даних.

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

8

Їх слід турбувати під час підключення до SQL Server на іншій машині.

  • Хост / IP-адреса машини
  • Початковий каталог (назва бази даних)
  • Дійсне ім’я користувача / пароль

Дуже часто SQL-сервер може працювати як інстанція за замовчуванням, що означає, що ви можете просто вказати ім'я хоста / ip-адресу, але ви можете зіткнутися зі сценарієм, коли він працює як іменований екземпляр (наприклад, Sql Express). У цьому випадку вам доведеться вказати ім'я хосту \ ім'я екземпляра.


6

Ви повинні розуміти, що сервер баз даних або DBA не хотів би, щоб хтось мав можливість підключати або змінювати вміст сервера. У цьому полягає вся мета облікових записів безпеки. Якщо одне ім'я користувача / pwd буде працювати на будь-якій машині, це не забезпечить жодного захисту. Те, про що ви чули, не працює з SQL Server 2005, 2008 або 2012, хоча я не впевнений у попередніх версіях. Я вважаю, що десь у перші дні SQL Server ім’я користувача за замовчуванням та pwd раніше були sa / sa, але це вже не так.

FYI, безпека баз даних та ролі сьогодні набагато складніші. Можливо, ви захочете вивчити деталі автентифікації на основі Windows. Якщо ваш SQL Server налаштований на нього, вам не потрібно будь-яке ім'я користувача / pwd у рядку підключення для підключення до нього. Все, що вам потрібно змінити, це назва машини сервера, і однаковий рядок підключення працюватиме на обох ваших машинах, оскільки обидва мають однакове ім’я db, звичайно.


1
sa - це обліковий запис sysadmin для SQL Server. Якщо він був встановлений із автентифікацією сервера sql або автентифікацією у змішаному режимі, вам потрібно створити обліковий запис sa. Для подальшої довідки, ось посібник з налаштування облікового запису sa, якщо він не був встановлений з увімкненою автентифікацією сервера sql.
iCodeSИноді

6

Ви можете використовувати автентифікацію Windows, якщо ваш сервер знаходиться в домені, або автентифікацію SQL. Sa - це адміністратор системи, кореневий обліковий запис для автентифікації сервера SQL. Але це погана практика, якщо для підключення ваших клієнтів. Вам слід створити власні облікові записи та використовувати їх для підключення до вашого SQL. У кожному підключенні ви встановлюєте логін облікового запису , його пароль та базу даних за замовчуванням , яку ви хочете підключити.


6

sa- це обліковий запис системного адміністратора, який за замовчуванням постачається з сервером sql. Як ви вже знаєте, ви можете використовувати два способи входу в SQL Server.

знімок екрана SQL Server Management Studio

Тому є рядки підключення, які підходять для кожного сценарію (наприклад, автентифікація Windows, localdb тощо). Використовуйте https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlserver для побудови рядка підключення. Це теги XML. Вам просто потрібно значення connectionString


4

Ми можемо просто підключитися до бази даних:

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

Наприклад:

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

-2
"ConnectionString":{
  "Database_Name": "server=.;database=Database_Name;Integrated Security=true;"
},

Спробуйте це

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.