[ lare @ 03.09.2010. 10:23 ] @
Pozdrav svima. Problem je sljedeći. Napravio sam vb.net desktop aplikaciju(2.0 framework).
Aplikacija se kači na MSSQL Server 2005. Na serveru sam kreirao jednog SQL usera sa
odgovarajućim privilegijama i naveo njegove 'credentials' u konekcionom stringu konfiguraciong fajla aplikacije.
Server je podešen da koristi 'SQL Server and Windows Authentication mode '

Kada aplikaciju pokrećem sa klijentskih mašina na kojima su instalirane Viste ili Windows 7-ce
sve radi kako treba, bez ikakvih problema. Međutim kada to isto pokušam sa klijenata
koji na sebi imaju Windows XP sp2/sp3 aplikacija javlja grešku da ne može da se konektuje
na MSSQL server zbog nedovoljnih permissions-a?!????

Po mom nekom rezonu, ja ne bih rekao da je to pravi razlog, jer sa Visti i Windows 7-a koje koriste isti
konekcioni string tu grešku ne javlja, a sa XP-a javlja; nije mi to logično. Inače svi klijenti su na jednoj domeni.
Također bih isključio verzije framework-a jer se na svim klijentima(uključujući i XP) aplikacija uredno startuje,
a problem se tek javi kada se pokuša pristupiti podacima.

I na kraju, nisam znao da li ovo da klasificiram kao problem sa operativnim sistemom ili bazom podataka,
pa sam zato temu stavio u čekaonicu. Neka pametniji od mene odluče gdje će je prebaciti. Unaprijed hvala na pomoći.
[ mmix @ 03.09.2010. 11:49 ] @
Kako ti glasi connection string?
[ AMD guy @ 03.09.2010. 12:09 ] @
Moguce je da se ime server razlikuje na masinama, ako se ne konektuje kao lokal.
Mozda ime na drugoj masini nije SQLExpress mozda je drugacije.
[ bhadnan @ 03.09.2010. 13:04 ] @
Ja mislim da ti to nije dobro hendlovano!
[ lare @ 03.09.2010. 13:09 ] @
@mmix: Konkcioni string glasi - connectionString="Data Source=ProductionMSSQL;Initial Catalog=NabavkaDB;User Id=NabavkaSQLUser;Password=a123; Connect Timeout=5000"

@AMD guy: MSSQL server nije express verzija. Ako je to i tačno što vi kažete opet mi nije jasno, zašto bi ga XP vidio pod drugim imenom. A ako je to i slučaj, kako da utičem na to?
[ Fedya @ 03.09.2010. 14:15 ] @
Probaj da u konzoli otkucas:

sqlcmd -UNabavkaSQLUser -Pa123 -SProductionMSSQL

I javi nam sta se desi.
[ lare @ 03.09.2010. 14:32 ] @
Kada ukucam navedenu linuju samo mi ispod ispiše: 1>
i blinka kursor.
[ Fedya @ 03.09.2010. 14:43 ] @
Znaci da je konekcija moguca, i da je conn-string ispravan. Zasto ne radi iz tvoje aplikacije... ja nemam ideju, moralo bi biti do tvog koda...
[ lare @ 03.09.2010. 15:02 ] @
Citat:
Fedya: Znaci da je konekcija moguca, i da je conn-string ispravan. Zasto ne radi iz tvoje aplikacije... ja nemam ideju, moralo bi biti do tvog koda...


Ovako, možda nisi upratio šta sam sve napisao, aplikacija radi ispravno sa klijenata na kojima je vista i win 7, dok sa xp-a neće. Znači problem nije u kodu. Isto tako navedenu komandu ja ne mogu probati sa klijntskih konzola, jer one nemaju instaliran na sebi server, tako da mi to ne govori baš puno.
Greška koja mi se pojavjuje samo na xp-u je: 'System.Security.SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.'
[ Fedya @ 03.09.2010. 15:19 ] @
Ispratio sam sta si rekao, mada sam mislio da si sqlcmd izvrsio sa klijentske masine na kojoj trci XP.

Greska koju si opisao nije povezna sa SQLom, cini mi se da ti ovde nemas prava pristupa ADO.NET kodu. Pogledaj Code Access Security and ADO.NET mozda pomogne, ako ne, mozda bi mod mogao da premesti temu u .NET, posto mislim da ovo nije SQL problem.
[ mmix @ 03.09.2010. 15:21 ] @
Ovo definitivno nije SQL problem, ov o se desava kad ljudi ne postave odmah sve detalje problema koji imaju.
Pogledaj link koji ti je Fedya okacio, najverovatnije ne pokreces aplikacije na isti nacin, da ne startujes mozda EXE kroz netowrk share?

[ unisoft @ 04.09.2010. 09:15 ] @
Evo moga koda za povezivanje na SQL server sa Visual Basic-om 6, trebalo bi da radi i u VBa.NET. Ovo su ti osnovni parametri sintakse za povezivanje sa SQL serverom.

Code:

    'DODATAK ZA SQL SERVER
    Public sqlSer As String
    Public sqlDrv As String
    Public sqlUsr As String
    Public sqlPas As String
    Public sqlBas As String
    Public sqlExe As String

    'PODACI O SQL SERVERU NA KOJI SE POVEZUJEMO
    sqlDrv = "{SQL Server}"
    sqlSer = "ZEVS10"
    sqlBas = "DIPLOMSKI"
    sqlUsr = "sa"
    sqlPas = "sa123"
    sqlExe = "Driver=" & sqlDrv & ";Server=" & sqlSer & ";Database=" & sqlBas & ";"
    '--------------------------------------------------------------------------    
    acnKonekcija.Open sqlExe, sqlUsr, sqlPas


Ovih nekoliko redova koda mozes da zamenis samo sa jednim redom koda ali kod je na ovaj nacin mnogo citljiviji.
[ pl4stik @ 04.09.2010. 11:24 ] @
Ako ti se sql server vrti na Win 2008 moguce da Viste i 7-ice koriste Windows auth i rade dok XP ima problema sa tim i ne radi. Informisi se malo o tome kako se XP authentifikuje na win server i/ili omoguci SQL Serveru Remote Conn. Tu gde ja radim corporate obe mogucnosti su neprihvatljive i radimo custom auth ... imaces problema sa dozvolama, moraces malo da ih olabavis.

Happy Coding
[ mmix @ 04.09.2010. 14:03 ] @
Ovo uopste nema veze sa SQLom, ovo je code-level security i ne stize cak ni do networking layera na klijentu. Verovatno iz nekog razloga na XPu aplikacija ne startuje u fulltrust rezimu i ovo je posledica.
[ lare @ 06.09.2010. 14:27 ] @
Hvala na usmjeravanju na pravi puta. Najvrjerovatnije problem jest Code Access Security i ADO.NET, tako da ću to pokušati da istražim, pa javim ako šta uspijem.