Nu se poate stabili o acreditare pentru comitent "SA". (Microsoft SQL Server, Eroare: 15535)
Pentru oricine de pe SQL Server 2005 care primeşte acest lucru nu se poate stabili o acreditare pentru principal "SA" eroare, repara este simplu, drept înainte şi simplu ... ![]()
Asiguraţi-vă că "Harta de Acreditare" este verificat. Asta e tot. Tot ce trebuie să faceţi este să verificaţi "Harta de Acreditare" şi sunteţi gata. Pentru cei fara ochi, acesta este pe partea de jos a ecranului primul care aţi setat parola de utilizator (prin clic dreapta pe utilizator şi selectaţi "Proprietăţi")
Acesta mi-au zgarieturi capul meu un pic, clar a instala de la Visual Studio 2008 (Cu Express 2005 Service Pack 2) şi SQL 2008 SSMS
Cum de a găsi + opri atacurile SQL injecţie
Filed under: . NET , ASP Classic , Gazduire , IIS 6.0 , 101 de programare , SQL Server
Există o mulţime de lucruri acolo despre atacuri SQL injection, dar nu de mult că vă va ajuta să dau seama cum de a opri aceste atacuri de la care apar.
În primul rând, hai sa vorbim despre ceea ce un atac SQL Injection este cu adevărat. Unii oameni cred că este un virus de soiuri, că este "în interiorul site-ul dvs. nu". Caz. Acestea sunt atacuri bot de virusul alte computere infectate. Ele folosesc pur şi simplu o abordare brute force de scanare URL-urile care ia POST / GET intrări şi să încerce să trimită propriile date pentru a le.
Deci, cum să urmăriţi aceste jos şi le opri? Pentru site-uri web creat de Microsoft IIS, aici sunt sugestiile noastre:
- Uită-te la IIS jurnalele dvs.
Încercaţi să căutaţi pentru cuvântul "declara" sau "Execute" Dacă aţi fost lovit de un atac., Acestea vor arăta probabil mai mult decât până în IIS logurile tale - cel puţin pentru orice atac care a fost încercat cu ajutorul "a lua" posturi. Dacă găsiţi orice situaţii de "declara" sau "Execute" acestea sunt pagini pentru a începe cu. - Utilizaţi conexiunea baze de date centralizate de manipulare
Simplu, a face un fişier centralizat (de exemplu, connection.asp dacă sunteţi folosind ASP ) Care se ocupă de toate dvs. de acces DB. În acest fel, este mai uşor să vă asiguraţi că sunteţi SQL codificarea paginile dvs.. Puteţi căuta cu uşurinţă interogări pentru "declara" şi "Execute" şi a opri atacurile morţi în piesele lor. - Punerea în aplicare o gamă largă de soluţii site-ul
Dacă tu eşti running propriul server-ul dvs., vă recomandăm foarte ISAPI_Rewrite din HeliconTech ( http://www.helicontech.com/isapi_rewrite ). Acesta este un filtru ISAPI care vă permite de a face o varietate de lucruri, inclusiv scanare de date URL. Aceasta va opri 99% din atacuri, fără a modifica orice cod de pe site-ul dvs.! \ - Nu folosiţi niciodată "SA", ca utilizator de baze de date, creaţi un utilizator pentru baza de date sunteţi de lucru de la şi apoi scoateţi privilegii pentru a citi dbo maestru. Aceasta împiedică un atacator de la "sniffing" structura baza de date, cu toate acestea, aceste atacuri au evoluat, astfel încât 'igienizat' stocate atacurile procedură bazată întâmpla chiar şi cu aceste tipuri de securitate în loc. A se vedea http://www.ngssoftware.com/papers/more_advanced_sql_injection.pdf pentru mai multe informaţii despre acest lucru şi alte idei pentru a preveni atacurile SQL Injection.
Dacă aţi fost vreodată scratching capul întrebându-se unde scurgere la programarea dumneavoastră este (sau au preluat un proiect de la altcineva), atunci cel mai bun mod de a determina prin care pagina de atac sa întâmplat este de a verifica afară IIS jurnalele.
Există multe script-uri disponibile pentru a curăţa, dar cel mai bun sfat este să oră de rezervă, şi să urmeze cele mai bune practici (dintre care unele am subliniat aici). Noroc
Cum se mută de domeniu pentru un cont diferit în fruntea 4
Helm 3 a fost usor de administrat, o multitudine de utilitati si instrumente existat ajutându-ne cu lumesc sarcini, dintre care una este de a muta un domeniu dintr-un cont creat pe Helm-un cont diferit. Helm 4 ... nu luck cu o astfel de utilitate ... dar deschiderea bazei de date. Verificarea tabelul de Conturi pentru AccountId aveţi nevoie pentru a muta un domeniu pentru a ... şi apoi deschiderea tabelului OnlineServices, vă va arăta toate domeniile adăugată la Helm şi asociate lor AccountId lui. Pentru a schimba domeniu legat de un cont, este la fel de uşor ca schimbând doar AccountId la unul tu prefer vizionare.
Sper că acest sfat ajută unele populare ca am putut gasi absolut nimic care să indice cum să facă acest lucru şi a trebuit să dau totul afară de mine.
Transferul de proprietate, tabelul de la SQL Server
Filed under: Gazduire , 101 de programare , SQL Server
Recent am avut nefericitul caz al unui server de configurare şi vii fiind folosite numai de către un utilizator care nu a fost dbo. Fie programator nu a ştiut mai bine sau ... bine ... el a fost idiotul satului ... oricum, asa ca ... pe cu codul. Aici este o simplă declaraţie T-SQL care va primi şi buclă prin toate procedurile stocate, tabele şi vizualizări şi să le actualizeze de a utiliza dbo (sau orice alt utilizator doriţi):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | sysobjects WHERE xtype IN ( 'U' , 'V' , 'P' ) AND uid = user_id ( 'olddbuser' ) OPEN tblcur WHILE 1 = 1 BEGIN FETCH tblcur INTO @tbl IF @@fetch_status < 0 BREAK SET @tbl = 'olddbuser.' + @tbl EXEC sp_changeobjectowner @tbl , 'dbo' END DEALLOCATE tblcur DECLARĂ @ TBL SysName DECLAR insensibil CURSOR tblcur pentru nume de sysobjects DIN SELECT xtype UNDE IN ("U", "V", "P") şi uid user_id = ("olddbuser") deschide tblcur în timp ce 1 = 1 BEGIN FETCH ÎN tblcur @ TBL DACĂ @ @ fetch_status <0 SET BREAK @ TBL = 'olddbuser +. "@ TBL sp_changeobjectowner EXEC @ TBL," dbo "END tblcur dealoca |
Utilizarea openrowset să se conecteze direct la altă bază de date fără un server legat şi să execute o procedură stocată
Filed under: General PC Chestii , MSMQ , 101 de programare , SQL Server
1 2 | SELECT * 'SQLOLEDB' , database_location;username;password , 'set fmtonly off exec database.dbo.stored_Procedure' ) AS Whatever DIN OPENROWSET ("SQLOLEDB", database_location; numele de utilizator, parola, "set off fmtonly exec database.dbo.stored_Procedure") AS Oricare ar fi |
Bucata de cod de mai sus este auto-explicativ. Am folosit doar acest lucru în SQL 2005, deşi, aşa că, dacă acesta nu funcţionează pe SQL 2000 nu vin plangand la mine.
database_location Înlocuiţi cu IP / destinaţie a serverului pe care doriţi să vă conectaţi la
Înlocuiţi numele de utilizator / parola cu ... ei bine ... nu am chiar trebuie să explicaţi acest lucru?
Înlocuiţi cu baza de date catalog / baza de date pe care doriţi să interogare
stored_Procedure Înlocuiţi cu procedura stocate pe care doriţi să execute
"Ca Oricare ar fi" este necesar. Ai putea prezenta ceva nume doriţi.
Am folosit mai sus pentru a interoga o bază de date în mod direct pentru extragerea de date / manipulare. Ai putea merge atât de departe încât să se alăture acestui interior în interogări normal daca nu faci o actualizare / adăuga bucla cursorul în acest sens.
Bucuraţi-vă. Mi-a luat un timp să-l dau seama ![]()
IP la Tara - Convertiţi adresă IP la IP Număr
Aici este o simplă declaraţie SQL pe care le puteţi folosi într-o procedură stocată pentru a determina numărul de IP a unei adrese IP pentru a compara cu orice IP la baza de date Ţara:
1 2 3 4 5 6 7 8 9 10 11 12 | ( 15 ) ,@1st INT ,@2nd INT ,@3rd INT ,@4th INT SET @ip = '41.243.224.9' SELECT @1st = LEFT ( @ip, CHARINDEX ( '.' ,@ip ) - 1 ) SET @ip = RIGHT ( @ip, LEN ( @ip ) - CHARINDEX ( '.' ,@ip ) ) SELECT @2nd = LEFT ( @ip, CHARINDEX ( '.' ,@ip ) - 1 ) SET @ip = RIGHT ( @ip, LEN ( @ip ) - CHARINDEX ( '.' ,@ip ) ) SELECT @3rd = LEFT ( @ip, CHARINDEX ( '.' ,@ip ) - 1 ) SET @ip = RIGHT ( @ip, LEN ( @ip ) - CHARINDEX ( '.' ,@ip ) ) SELECT @4th = @ip SELECT ( ( @4th ) + ( @3rd * 256 ) + ( @2nd * 65536 ) + ( @1st * 16777216 ) ) ip VARCHAR @ DECLAR (15), @ primul INT, @ două INT, @ treia INT, @ SET INT patra @ ip = "41 .243.224.9 'SELECT @ prima = stânga (@ ip, CHARINDEX ('. ', @ IP) - 1) SET @ ip = dreapta (@ ip, (@ IP) - CHARINDEX LEN ('.', @ ip)) SELECT @ două = stânga (@ ip, CHARINDEX ("set.", @ ip) - 1) @ ip = dreapta (@ ip, (@ IP) - CHARINDEX LEN (',.' @ ip)) SELECT @ treia = stânga (@ ip, CHARINDEX ("perioada de anchetă." @, IP) - 1) SET @ = DREAPTA (@ ip, LEN (@ ip) - CHARINDEX (',.' @ ip)) SELECT @ @ patra = ip SELECT ((@ patra) + (@ treia * 256) + (@ două * 65536) + (@ prima * 16777216)) |
Aceasta vă permite să aibă o procedură SQL ia variabila de o adresă IP şi nu au de a converti adresa IP în primul cod. Acest lucru ar trebui să funcţioneze pentru MySQL, precum şi cu schimbări minore.
Formula este destul de simplă şi de auto-explicative. De îndată ce am găsi o fiabile (mai ales complet) IP la baza de date de ţară, voi edita acest post care o reflectă, deci acum nu am găsit nici de a alege, chiar până gama adresa ţării mele este în care este o ruşine real. Nici chiar open source PHP ip2c proiect se poate ridica, care ma face sa ma indoiesc de capacitatea de a ajuta în orice program dezvoltat pentru a determina ţara în mod automat de la adresa IP.
Folosind un Legat în SQL Server 2005 Express pentru a vă conecta la Excel
Sunt destul de frustrat atunci când vine vorba de opţiunile DTS lipsesc în SQL 2005 Express, mai ales atunci când vine vorba de foi de calcul Excel importatoare într-un tabel, aşa că am putea de referinţă este uşor într-o declaraţie T-SQL pentru a importa date în baza de date relationala mele deja existente .
În cele din urmă am găsit o mică bijuterie, care părea să funcţioneze:
1 2 3 4 5 6 7 8 9 | 'EXCEL2' , 'Excel' , 'Microsoft.Jet.OLEDB.4.0' , 'D: \d ata.xls' , NULL , 'Excel 8.0' , NULL SELECT * FROM excel2... a $ WHERE [ Whatever COLUMN ] IS null EXEC SP_ADDLINKEDSERVER "EXCEL2", "Excel", "Microsoft.Jet.OLEDB.4.0", "D: \ d ata.xls ', ZERO," Excel 8.0 ", NULL SELECT * FROM excel2 ... un $ unde [Oricare ar fi COLOANĂ] este nul |
Efectiv te alias Excel document ca un server SQL legat (în acest exemplu, excel2). Trebuie numai să fac asta o dată. Odată ce este de configurare funcţionează până când nu de-link-ul server alias (sau vă mutaţi sursa de date)
Acest lucru ma ajutat enorm în obţinerea de date şi interogarea-o cu T-SQL fără a fi nevoie de import ca eu sunt utilizate pentru a cu DTS. Aţi putea dori să se uite pe-afară de limba diferenţe între cele două, dar o simplă Collate DATE DEFAULT ar trebui să facă truc în cele mai multe cazuri, atunci când join'ing interioare sau compararea a două date diferite server.
Cum sa configuram un Windows Server 2003 Web
Filed under: . NET , ASP Classic , Gazduire , IIS 6.0 , SQL Server
De fiecare dată când am setup-o cutie W2K3 ca un server de web facem următoarele
Etapa 1
1.1 Copiaţi i386 la c: \
1.2 configuraţi permisiuni Windows pe toate partiţiile
- Lasă
Administratorii (integral)
Sistemul (integral)
Scoateţi Diverse
1.3 Redenumire Administrator
1.4 Redenumire Machine
1.5 Reboot
1.6 Nu se va instala actualizările Windows (. Cadrele NET)
1.7 Adauga IP-uri la TCP / IP
1.8 Adauga DNS sufix la TCP / IP (Numai dacă este necesar)
1.9 Dezactivează Shutdown Event Tracker
1.10 Reboot
Etapa 2
2.1 Instalarea Support Tools
2.2 Instalarea Instrumente Resource Kit
2.3 instala KB908521 (Nu este necesar în cazul în care w2k3 SP2)
2.4 Instalarea SNMP
2.5 Instalarea SNMP Informant
2.6 Configuraţi Windows Time
2.7 Reboot
Etapa 3
3.1 Instalarea R2 (Numai dacă vrei)
3.2 Reboot
Etapa 4
4.1 Setup Automatic Updates
4.2 SM Setup DNS
4.3 Set TCP / IP pentru a DNS locale
4.4 MSTDC Fix
Etapa 5
Instalaţi IIS 5.1
5.2 Se lasă directe metabazei Editare
IIS 5.3 Setare IP-uri să fie ascultat pe
Reporniţi IIS 5.4
Documente 5.5 Set Default
5.6 W3SVC Setare Activitate params
5.7 Instalarea FastCGI
5.8 Instalarea PHP 5.1 si 5.2 (Model FastCGI)
5.9 Instalarea Zend Optimizer (ediţia pe 32 de biţi)
5.10 instala Perl
5.11 Instalaţi Python
5.12 Configurarea IIS SMTP
5.13 Dezactivează IIS Socket SMTP Schimburile
- Http://www.isaserver.org/tutorials/i ... etpooling.html
5.14 Reboot
Pasul 6
6.1 Instalarea NET Framework 2.0.
6.2 Instalarea NET Framework 2.0 SP1.
6.3 Instalarea NET AJAX 1.0.
NET Framework 6.4 Instalaţi. 3.5 (Asiguraţi-vă că folosi programul de instalare fără SP1)
NET Framework 6.5 Instalaţi. 3.5 SP1 (Numai dacă utilizaţi Helm 4.1)
6.6 Reboot
Pasul 7
7.1 Instalarea ISAPI_ReWrite
7.2 Instalarea JMail.NET
7.3 Instalarea W3JMail
7.4 Instalarea Blocker hotlink
7.5 Instalarea IIS Parola
7.6 Instalarea Winrar
7.7 Instalarea persistă ASP e-mail
7.8 Instalarea persistă ASP Jpeg
7.9 Instalarea persistă ASP Upload
7.10 Reboot
Fireşte cazul în care caseta nu este mergi la a fi un server DNS nu ar instala MSDNS, instrucţiuni se aplică atât pe 32 de biţi şi pe 64 de biţi w2k3. Eu nu am de gând să explice fiecare pas în detaliu informaţii este doar astfel încât să puteţi vedea ce ordine facem lucruri. Acesta a fost foarte bine testat şi nu am avut probleme
La fiecare pas pe care il vom instala tot de testare, astfel suntem siguri PHP este funcţionează corect înainte de a trece pe la pasul următor. Dacă aveţi nevoie pentru a instala MySQL sau MSSQL aş face la Pasul 8. Odată ce totul este setup-ar instala Helm ca o telecomanda sau de control.
Cum de a afişa numai valoarea în timp în getdate ()
Am fost ocupat în jur de joc astăzi şi a făcut următoarele Cred ca unii oameni vor aprecia atunci când am vrut doar pentru a compara ora din zi, şi nu la data:
1 2 3 4 | ( DAY , - DATEDIFF ( DAY , 0 , GETDATE ( ) ) , GETDATE ( ) ) > '15:30:00.000' BEGIN PRINT 'yay' END DACĂ DATEADD (zi, - DATEDIFF (zi, 0, getdate ()), getdate ())> '15: 30:00.000 "BEGIN PRINT" yay "END |
Data prestabilite - Ce trebuie să ştie fiecare programator
Filed under: Classic ASP , 101 de programare , SQL Server
Un câţiva ani înapoi, atunci când am început prima mea sarcina de programare a fost la codul unui sistem intranet putea urmări întâlnirile şi anumite sarcini au angajaţii pe parcursul zilei pe baza unui calendar. Acest lucru a fost înainte de am ştiut ce putere SQL Server 2000 (şi acum, 2005/2008), a avut şi cât de uşor a fost de lucru în cadrul acestor sisteme.
MS Access (care a schimbat foarte mult din 1999) a avut un defect. A ţinut întotdeauna în formatele de data ll / zz / aaaa (America este "lumea" hahahahaha), astfel încât acest lucru a făcut treaba mea ce în ce mai dificil de încercarea de a manipula datele la un moment dat pe Africa de Sud (zz / ll / aaaa)
M-am luptat din greu pentru a înţelege actul neruşinat la care MS Access măcelăriţi intrări meu data dar nu am putut ajuta, dar cred că acest lucru poate nu sa întâmplat cu toate programatori!
După o mulţime de dureri de inimă şi o mulţime de nopţi nedormite Am găsit în sfârşit glont de argint pentru vârcolac care a fost MS Access (şi alte servere din întreaga lume care rulează pe setările de fus orar diferit)
dd-MMM-aaaa! Tradus în: 01-Jan-1999, de exemplu, puteţi introduce data ORICE cu 100% garanţie că somnul vostru va garantate. Acest format data universal va funcţiona în orice (da, l-ai citit! ORICE) baze de date cunoscute de om şi, chiar dacă datele de prime poate arata ca 09/02/1999 în baza de date, acesta va mereu insera data corectă în formatul corect în baza de date, indiferent de ceea ce fus orar este setat pe server!
Clasic exampes ASP de a citi data out este:
1
| date ( ) ) & amp ; "-" & amp ; Left ( MonthName ( Month ( Date ( ) ) ) , 3 ) & amp ; "-" & amp ; Year ( Date ( ) ) Zi (data ()) & amp; "-" & amp; Stânga (MonthName (Luna (Data ())), 3) & amp; "-" & amp; Anul (Data ()) |
SQL Server exemplu, va folosi în loc de DateName MonthName (care poate fi prescurtată fără stânga () funcţia am avut de a utiliza în ASP) şi, bineînţeles, data () = getdate () din SQL Server ![]()
Aş recomanda întotdeauna citit-o din baza de date (ori de câte ori este posibil) cu proceduri stocate în formatul corect pentru a începe cu. Dar este de până la tine pentru a decide modul de utilizare această bijuterie de cunoştinţe am aruncat la tine. Şi dacă sunteţi de lectură această gândire "Dar ştiam deja acest lucru", atunci! Cred din nou. Din păcate, în 2009, există încă destul de programatori câteva incapabil sa inteleaga concepte simple, cum ar fi fusurilor orare şi manipularea data.
Amintiţi-vă copiii. Greşeli atunci când sunteţi încă nou în joc este un lucru. Fluturînd un CV (CV) de 3 ani de experienta + şi încă mai face aceste greseli este pur şi simplu greşit ... ai ales un domeniu în care trebuie să evolueze şi să caute răspunsuri în mod constant, nu stagnare ... Voi bantuie visele tale, dacă faci ![]()













































