Как установить строку подключения к SQL Server?

96

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

Рошан
источник
5
Вы никогда не захотите использовать имя пользователя и пароль учетной записи по умолчанию для настройки доступа к SQL Server или любому типу соединения в этом отношении.
jordanhill123
4
SAсредняя sys_adminроль сервера sql
Эльшан,
2
Можно ли использовать проверку подлинности Windows вместо проверки подлинности SQL Server? Это позволило бы вообще избежать использования идентификаторов пользователей и паролей.
Филип Шеард,

Ответы:

132

.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я думаю, что это как-то связано с недопустимыми escape-символами, как мне это сделать правильно?
Вайриму Муриги
1
@Wairimu Murigi Вы должны избегать обратной косой черты, т.е. user id = Domain \\ Uname
John Hartley
1
@Itachi: Простите за некропост. Вводим ли мы это в командную строку Windows с помощью SQLCMD?
MSIS
1
Мой пароль содержит ;символ
Kiquenet
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 Express: sa Пароль: Password123

SQL Server 20xx Web или стандартный пользователь: sa Пароль: будет таким же, как ваш пароль администратора или пользователя root на момент предоставления VDS.

Вы можете войти в систему с пользователем sa в этом окне входа в систему при запуске диспетчера баз данных SQL Server. Как на этом изображении:

Пример входа

КриогенныйNeo
источник
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();
Hemlata Gehlot
источник
11

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

string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";
Чамила Мэддумадж
источник
8

Это ряд вещей, о которых следует беспокоиться при подключении к SQL Server на другом компьютере.

  • Хост / IP-адрес аппарата
  • Исходный каталог (название базы данных)
  • Действительное имя пользователя / пароль

Очень часто SQL-сервер может работать по умолчанию, что означает, что вы можете просто указать имя хоста / IP-адрес, но вы можете столкнуться со сценарием, когда он работает как именованный экземпляр (например, Sql Express). В этом сценарии вам нужно указать имя хоста \ имя экземпляра.

скартаг
источник
6

Вы можете использовать аутентификацию Windows, если ваш сервер находится в домене, или аутентификацию Sql. Sa - системный администратор, учетная запись root для аутентификации SQL-сервера. Но использовать его для подключения ваших клиентов - плохая практика. Вы должны создать свои собственные учетные записи и использовать их для подключения к вашему SQL. При каждом подключении вы устанавливаете логин учетной записи , ее пароль и базу данных по умолчанию , к которой хотите подключиться.

Alex
источник
6

sa- это учетная запись системного администратора, которая по умолчанию поставляется с sql server. Как вы уже знаете, вы можете использовать два способа входа в SQL Server.

снимок экрана SQL Server Management Studio

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

Менука Ишан
источник
5

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

К вашему сведению, безопасность базы данных и роли в наши дни намного сложнее. Возможно, вы захотите изучить детали проверки подлинности на основе Windows. Если ваш SQL Server настроен для этого, вам не нужно какое-либо имя пользователя / pwd в строке подключения для подключения к нему. Все, что вам нужно изменить, - это имя серверной машины, и одна и та же строка подключения будет работать с обеими вашими машинами, если, конечно, оба имеют одинаковое имя базы данных.

dotNET
источник
1
sa - это учетная запись системного администратора для SQL Server. Если он был установлен с аутентификацией сервера sql или в смешанном режиме, вам необходимо настроить учетную запись sa. Для дальнейшего использования, вот руководство по настройке учетной записи sa, если она не была установлена ​​с включенной аутентификацией sql server.
iCodeSometime
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;"
},

Попробуй это

VLB DE MEL
источник