/ / Používanie MS SQL SERVER 2008 R2 EXPRESS s aplikáciou C # Windows? - c #, sql, sql-server-express

Použitie MS SQL SERVER 2008 R2 EXPRESS s aplikáciou C # Windows? - c #, sql, sql-server-express

Vytvoril som aplikáciu c # windows (framework 2.0), ktorá používa databázu MS SQL.
Pri vývoji som použil MS VISUAL STUDIO 2010 a SQL 2008 MANAGEMENT STUDIO.
Môj pripojovací reťazec počas vývoja je:

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=SL;Integrated Security=True");

Všetko funguje dobre ....

Teraz chcem spustiť túto aplikáciu na klientskom systéme.
MS SQL SERVER 2008 je teda v klientskom systéme úspešne nainštalovaný.
Zastavil som služby sql môjho systému a skopíroval súbory .mdf a .ldf z môjho počítača a vložil ich do „c: Databáza“ klienta. Počas behu však prichádza problém.

Chyba špecifická pre sieť alebo inštanciukým nastala vytvorenie spojenia so serverom SQL Server. Server nebol nájdený alebo nebolo dostupné. Overte, či je názov inštancie správny a že SQL Server je nakonfigurovaný tak, aby umožňoval vzdialené pripojenia. (poskytovateľ: SQL Sieťové rozhrania, chyba: 26 - Chyba pri vyhľadávaní servera / inštancie neurčené)

Pripojovacie reťazce, ktoré som už mnohokrát vyskúšal, sú:

SqlConnection con = new SqlConnection("Data Source=.\MSSQLEXPRESS;Initial Catalog=SL;Integrated Security=True");

SqlConnection con = new SqlConnection("Data Source=.\MSSQLEXPRESS;Initial Catalog=SL;Persist Security Info=True;User ID=sa;Password=pass");

SqlConnection con = new SqlConnection("Data Source=.\MSSQLEXPRESS; AttachDbFilename =C:\Database\SL.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

Keď používam User ID=sa;Password=pass v pripojovacom reťazci dostanem:

autentifikácia zlyhala pre „sa“

Chýbajú mi nejaké kroky alebo robím zle? Prosím, povedzte mi, čo mám robiť po skopírovaní databázy z môjho systému. Aký by mal byť môj pripojovací reťazec v C #?

Vďaka !

odpovede:

2 pre odpoveď č. 1

Skopírovali ste iba súbory, ktoré potrebujete priložiťdatabázu do SQLExpressu, pozrite sa na použitie OSQL alebo alternatívne nainštalujte klientske nástroje na počítač, kde máte SQLExpress, a pripojte databázy.


1 pre odpoveď č. 2

Najskôr sa nezabudnite pozrieť Sres “odpoveď.
Ak nepoviete SQL Serveru v pripojovacom reťazci, aby pripojil vašu databázu (s AttachDbFilename, ako v treťom príklade), musíte urobiť pripútanie, ako povedal.

Čo sa týka vašich troch príkladov pripojovacích reťazcov: všetky fungujú iba za určitých okolností. Možno budete chcieť vyskúšať connectionstrings.com.

Tu sú vaše tri spojovacie reťazce a krátke vysvetlenie ich problémov:

Data Source=.MSSQLEXPRESS;Initial Catalog=SL;Integrated Security=True

-> Toto používa aktuálneho používateľa systému Windows, pod ktorým je vaša aplikácia spustená. Aktuálny používateľ systému Windows teda musí mať oprávnenie k databáze na počítači klienta.

Data Source=.MSSQLEXPRESS;Initial Catalog=SL;Persist Security Info=True;User ID=sa;Password=pass

-> Používa sa špeciálny používateľský účet „sa“. Aby to fungovalo, musíte sa ubezpečiť, že sú splnené nasledujúce predpoklady:

  • Overenie v zmiešanom režime musí byť nastavené (ak tak neurobíte, máte iba autentifikáciu Windows a „sa“ je používateľské meno autentifikácie SQL Servera)
  • je potrebné zadať heslo „sa“ a samozrejme musí byť rovnaké ako na vývojovom stroji.

Ale aj tak to nie je najlepšie riešenie. „sa“ je účet správcu s úplnými povoleniami a vy by ste nemali používať účet správcu na prístup k serveru SQL Server s vašou aplikáciou.
Ak naozaj chcete použiť autentifikáciu SQL Servera (namiesto autentifikácie Windows), je lepšie vytvoriť nový účet s minimálnymi potrebnými oprávneniami, ktoré vaša aplikácia potrebuje.

Data Source=.MSSQLEXPRESS; AttachDbFilename =C:DatabaseSL.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

-> rovnaký problém ako pri prvom pripojovacom reťazci (aktuálny používateľ systému Windows musí mať povolenia). Plus, User Instance=True je potrebné povoliť na serveri SQL Server.
Citácia od connectionstrings.com:

Ak chcete používať funkčnosť inštancie používateľa, ktorú potrebujeteumožniť to na SQL Server. To sa deje vykonaním nasledujúceho príkazu: sp_configure "užívateľské inštancie povolené", "1". Zakázať funkčnosť vykonať sp_configure "užívateľské inštancie povolené", "0".


0 pre odpoveď č. 3

Ste si istý, že názov novej inštancie je „MSSQLEXPRESS“?

Moja inštancia R2 Express sa volá "SQLEXPRESS" (je to vlastne kvôli známej chybe v inštalačné).

Možno budete chcieť skontrolovať, či sa inštancia skutočne volá to, čo si myslíte, že je.