Je suis tombé hier sur cet article sur SQLServerCentral: Map IP Address to a Geographical Location. J’ai voulu voir ce que ça donnerait en utilisant les types de données spatiaux de SQL Serveur 2008. Le but était de voir de voir si je pouvais géolocaliser mon IP et l’afficher dans Management Studio, à l’aide seulement des données de GeoLiteCity: http://www.maxmind.com/app/geolitecity L’importation des données Il faut importer les données, soit à peu près 150 Mo. Ma table GeoLiteCity_Location diffèr...
[Plus]
Il y a quelques semaines, Waldar se proposait de résoudre les défis de TSQL Challenges, en TSQL et en PL/SQL! Ca sera intéressant de comparer les différentes solutions au même problème. mnitu vient de poster une solution Oracle au challenge 10, complétant celle de Waldar.
Pour compléter la première partie, voici un lien sur un exemple complet (vidéo et code ASP.net), présenté par Todd Miranda. Cette vidéo explique bien la règle d’or contre ces attaques: Never trust your data! Attention: “Never trust your data” s’applique évidemment au saisies utilisateur mais aussi aux données déjà présentes en base. Pour illustrer cet aspect, voici une attaque en deux étapes. Attaque en deux étapes L’attaque en deux étapes illustre bien la dangerosité des données déjà...
[Plus]
Voici déjà le dixième challenge de TSQL Challenges ! Voici une traduction pour les francophiles. En aparté du challenge proprement dit: TSQL Challenges va désormais proposer du contenu gratuit afin d’aider les challengers à trouver la solution, et ainsi les aider à résoudre des problèmes similaires tout à fait concrets. Le principe est le suivant: Si vous pouvez résoudre le challenge, allez y, et envoyez votre solution ! Si vous n’y arrivez pas, inscrivez vous au webcast, il est gratuit...
[Plus]
Dans le cade de mon activité professionnelle, je travaille avec des réseaux radio à bande passante limitée: GPRS, voire très limitée (2RP, 3RP). Dans ce cas on a tout intérêt à utiliser des messages binaires dont la taille est la plus petite possible. L’encodage/décodage peut être fait par une application externe, mais aussi par SQL Serveur, en utilisant des procédures stockées étendues, un assembly .NET ou bien directement en TSQL. Dans le cas de TSQL, il est pratique de pouvoir convertir des ...
[Plus]
On parle souvent de moteurs de bases de données relationnelles, alors pourquoi pas parler d’injection :-) L’injection SQL est une technique de piratage, vieille comme le monde, ou à peu près. Elle consiste à faire exécuter au serveur du code non prévu. Ces attaques visent souvent des sites web, mais toute application un peu trop naïve fabriquant du code SQL et demandant au serveur SQL de l’exécuter tel quel peut y être sensible. Le cas d’école Votre nouveau site march...
[Plus]
Master La base de données master est sans doute la plus importante des bases de données systèmes (partie 1/8), en tout cas, la plus vitale, car elle contient tous les paramètres de l’instance et toutes les vues systèmes. La sauvegarde de cette base de données est donc extrêmement importante. Le procédure de restauration de master est documentée ici. Procédure de déplacement de master Si vous devez déplacer la base de données master, cette procédure peut vous être utile. Le principe est le s...
[Plus]
Voici une question intéressante que je viens de lire sur un forum: Les valeurs nulles prennent elles de la place ? Une petite mise au point au sujet du vocabulaire: Quand on dit qu’une colonne est nullable, cela signifie que la cette colonne peut être non valuée (pour certaines lignes). NULL n’est pas une valeur, c’est l’absence de valeur. Alors, l’absence de valeur dans une colonne prend elle de la place dans une table ? La réponse rapide est: Oui. S’il n’y avait que des NULL dans cette colonne o...
[Plus]
[tabs] [tab=fr] Bien que ce blog soit dédié à SQL Serveur, je voudrait souligner l’initiative de Waldar, qui se propose de résoudre les challenges de la série TSQL Challenges, en TSQL et en PL/SQL. Cela peut être extrêmement intéressant de comparer les différentes approches possibles entre ces deux moteurs majeurs de bases de données relationnelles. Et puis, cela me poussera un peu à découvrir l’”autre face du monde” :-) A suivre donc… [/tab] [tab=en] This blog is dedicated to SQL Server, how...
[Plus]
Je suis très heureux de relayer en français le neuvième challenge de TSQL Challenges, ainsi que la nouvelle orientation prise: Il y a du nouveau sur TSQL Challenges Le ‘Team SQL Challenge’ à travaillé dur pour mener cette série de challenges un peu plus loin. Les buts et la structure de TSQL challenges ont été affinés. Le but Le but de TSQL Challenges est d’aider les utilisateurs de SQL serveur à améliorer leurs techniques ensemblistes. Dans la vaste majorité des cas, une r...
[Plus]
Introduction Voici le premier d’une d’articles abordant les bases de données systèmes et les vues systèmes de SQL Serveur. SQL Serveur possède deux types de bases de données: Les bases de données utilisateurs, qui comme leur nom l’indique, contiennent des données utilisateurs, ce ne sont pas elles qui nous intéressent ici. Et les bases de données systèmes ! Les bases de données systèmes dépendent de la version de SQL Serveur utilisée. La suite de cette série d’articles portera sur SQL S...
[Plus]
T-SQL, comme tout langage de programmation, permet de manipuler des données. Heureusement d’ailleurs ! Et nous sommes ici particulièrement bien servi. Stockage interne Ces données, qu’elles soient dans des tables ou des variables, doivent être in fine stockées en binaire, sur disque ou en mémoire. C’est le stockage interne. Celui-ci, sauf indication contraire, devrait être vu comme une boîte noire car il peut varier d’une version de SQL Serveur à une autre. Si l’on définit la variable @s suivante ...
[Plus]