ConnectionString do bazy MSSQL na moim komputerze w sieci

0

Potrzebuje sposobu na zdefiniowanie connectionStringa dla bazy umieszczonej na moim komputerze (u siebie mam zainstalowany MS SQL Server 2008) tak aby z jednej bazy mógł korzystać kolega z komputera z sieci (korzysta przez mój komputer już z drukarek, zwyklej i zebry) i ja.

Potrzebuje takiego mini warsztatu, gdzie względnie prosta aplikacja z dwóch kompów dziala na jednej bazie, chciałbym na niej przetestowac różne możliwosci użycia aplikacji, jednoczesnego zapisu danych, usuwania i nadpisywania danych ogólnie różnych.

  1. Próbowałem connectionString budować tak:
 

private static string pracowyUniwersalny =          "Data Source=192.168.x.xxx ;" +
                                                    "Initial Catalog=miniERProdDB ;" +
                                                    "User ID=ImieiNazwisko ;" +
                                                    "Password=hasloKtorymJAsieLogujeNaKomputerze ;";

Nie działa, nie odnajduje bazy danych, nawet przy uruchomieniu aplikacji na moim komputerze.

  1. jeżeli zrezygnowałem z loginu i hasła:
 private static string pracowyUniwersalny =         "Data Source=192.168.x.xxx ;" +
                                                    "Initial Catalog=miniERProdDB ;" +
                                                    "Integrated Security=True";

również nie odnajdywało bazy nawet przy uruchamianiu aplikacji z mojego komputera.

  1. przypadek:
 private static string pracowyUniwersalny =         "Data Source=NazwaMojegoKompa\\SQLEXPRESS ;" +
                                                    "Initial Catalog=miniERProdDB ;" +
                                                    "Integrated Security=True";

u mnie, na moim kompie działa, na sąsiednim komputerze aplikacja nie działa, nie znajduje bazy

  1. przypadek:
 private static string pracowyUniwersalny =         "Data Source=NazwaMojegoKompa\\SQLEXPRESS ;" +
                                                    "Initial Catalog=miniERProdDB ;" +
                                                    "User ID=ImieiNazwisko ;" +
                                                    "Password=hasloKtorymJAsieLogujeNaKomputerze ;";

nie działa u mnie. i to mnie zdziwiło, czy to znaczy ze podaje nie ta nazwę użytkownika i nie te hasło?

Sprawdzałem teraz uruchamianie MS SQL Server i mam ustawione windows Authentication, a w wyłączonym do edycji polu User name: było NazwaMojegoKompa/ImieINazwisko wiec tak sprobowałem:
5) przypadek:

 private static string pracowyUniwersalny =         "Data Source=NazwaMojegoKompa\\SQLEXPRESS ;" +
                                                    "Initial Catalog=miniERProdDB ;" +
                                                    "User ID=ImieiNazwisko ;" +
                                                    "Password=NazwaMojegoKompa\\hasloKtorymJAsieLogujeNaKomputerze ;";

ale również nie działa nawet na moim kompie.

Nie wiem jak zbudować taki uniwersalny ConnectionString który działałby i na moim kompie i na drugim w sieci. Prosiłbym o nakierowanie, na rozwiązanie, nie znam się na sieciach w ogóle.

0

https://www.connectionstrings.com/sql-server-2008/ , musi Ci działać pierwszy lub trzeci przykład. Jeśli nie działa po nazwach, spróbuj po IP. I upewnij się, że pozwalasz na firewallach i innych wynalazkach na połączenie z bazą na danym porcie (domyślnie 1433). Aha - użytkownik i hasło to użytkownik i hasło w bazie, nie na komputerze.

0

możesz szerzej opisać sposób na pozwalanie na połączenie z bazą na danym porcie (1433), tu chodzi o uprawnienia na obu komputerach klienckich tak? Używamy NOD32, czy bardziej chodzi o firewalla windowsowego?

użytkownik i hasło są z bazy danych, ale ja ustawiłem WindowsAuthentication na serverze, i nie dawałem zadnych specjalnych nazw loginu i hasła przy instalacji servera, czyli co chyba drążyć 3) przypadek jezeli mówisz ze musi zadziałac?

0

A tak próbowałeś?

Data Source=192.168.XXX.XXX,1433;Network Library=DBMSSOCN;
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

Gdzie myUsername oraz myPassword to dane użytkownika który ma dostęp do tej konkretnej bazy danych. WindowsAuthentication zadziała jeśli masz poprawnie dodanych użytkowników z każdej domeny bo zgaduje że razem z kolegą nie jesteście w tej samej domenie.

Czy masz otwarty port możesz sprawdzić w cmd za pomocą netstat -an albo od kolegi do twojego komputera za pomocą telnet host port albo za pomocą PuTTY.

0

Właśnie mam sporo innych rzeczy teraz w pracy i nie moge sprawdzić Waszych podpowiedzi, mam tylko jeszcze takie pytanie.

W domowych warunkach, komputer stacjonarny z MS SQL Serverem i Visual Studio na ktorym kompiluje program i laptop ktory dodam do sieci domowej przez wifi, czy w ten sposob odtworze takie same warunki z pracy czy to bedzie pelna analogia z pracy czy jednak beda jakies roznice miedzy siecia moja domowa a tą z pracy? Tzn jezeli znajde rozwiazanie w warunkach domowych to czy to zadziala w pracy?

0

Nie powinno być problemów jak tylko serwer jest widoczny, a port odblokowany powinno śmigać w pracy jak i domu. Pozostaje tylko kwestia autentykacji którą w końcu wybierzesz ja bym poszedł jednak w kierunku wpisanego loginu i hasła a nie poprzez Windows Authentication. :)

0

Dane do połączenia z bazą dobrze jest przechowywać w pliku konfiguracyjnym (app.config). Coś w stylu:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <connectionStrings>
    <add name="conn" connectionString="Data Source=192.168.1.xxx\NAZWA_INSTANCJI;Persist Security Info=true;Initial Catalog=NAZWA_BAZY;User ID=sa;Password=HASŁO_DO_BAZY" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

W sekcji using

using System.Configuration;
using System.Configuration.Provider;

Plus referencje do System.Configuration

a w Formie coś a'la :

 public static SqlConnection GetConnection
          {
             get
              {

                  string conn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
                  SqlConnection connect = new SqlConnection(conn);
                  return connect;
              }
          }
0

Sql Server Browser w usługach Windows włączony?

1 użytkowników online, w tym zalogowanych: 0, gości: 1