SQL SERVER est un produit extrêmement vaste en termes de fonctionnalités. Les versions se succèdent et apportent leurs lots de nouveautés et optimisations. Comme tout produit riche, il offre plusieurs possibilités et plusieurs cheminements pour un même résultat. SQL SERVER va même encore plus loin et offre non seulement des solutions intégrées qui s’adressent à des profils utilisateur, administrateur, développeur ou utilisateur lambda, mais s’ouvre aussi à des outils externes comme PowerShell, la nouvelle console de scripts dédiée aux administrateurs systèmes.
Nous vous proposons aujourd’hui de découvrir comment arriver à effectuer une opération sur un serveur SQL SERVER, et ce, de plusieurs façons pour un même résultat, autour d’un exemple simple, mais tellement courant : La sauvegarde d’une base de données.
Nous sortons de la juridiction du développeur pour nous orienter maintenant vers un outil dédié et conçu plus particulièrement pour les administrateurs systèmes : SqlCmd. SqlCmd est un outil en ligne de commandes permettant d’exécuter des ordres Transact-SQL sur un serveur SQL SERVER donné.
Il nécessite donc des connaissances du langage SQL. SqlCmd permet en outre d’exécuter des scripts SQL présents dans un fichier, passé en arguments. Il existe donc deux méthodes pour exécuter un backup via SqlCmd :
-
Exécuter l’ensemble des commandes directement depuis la console SqlCmd
-
Lancer l’exécution d’un fichier SQL contenant les instructions de sauvegarde depuis SqlCmd. Note : Avant de poursuivre, Il vous ait fortement conseillé de faire un petit tour de l’aide via la commande SqlCmd / ? Voici les principaux arguments que nous utiliserons pour la suite :
-
-S : Nom du serveur auquel se connecter.
-
-E : Connexion approuvée (mode Authentification Windows)
-
-i : Fichier SQL d’entrée.
-
-o : Fichier résultat de sortie.
-
-v var : Ajout d’une variable de script SqlCmd.
Première méthode. Lancer des commandes SQL depuis SqlCmd L’utilitaire SqlCmd se lance depuis une console DOS. La connexion à un serveur SQL se fasse via la commande: SqlCmd –S «(local)\SQL2008 » -E Nous sommes connectés à notre serveur et nous pouvons maintenant exécuter directement du code SQL. Par exemple lister les bases de données de notre instance : Select top 5 database_id, name from sys.databases
Résultat en image dans notre console SqlCmd : Voir Figure 9. Maintenant, la réalisation de la sauvegarde de notre base de données : Voir listing 5. Le résultat de l’opération : Voir Figure 10. Deuxième méthode. Lancer un fichier SQL depuis SqlCmd Nous pouvons très bien imaginer un administrateur système préparer un script SQL, sauvegardé dans un fichier .SQL et demander à exécuter ce script directement depuis SqlCmd.
Pour ce faire, nous reprenons notre script, enregistré dans un fichier backupbdd.sql et stocké quelque part sur le disque dur (la racine C:\ ici pour des raisons de simplicité de l’exemple) L’exécution du script contenu dans le fichier .sql s’effectue via la commande :
SqlCmd -S "(local)\sql2008" -E -i "c:\BackupBdd.sql" -o "c:\backupbdd.sql.txt"
Le script SQL va être joué et le résultat de son exécution stocké dans le fichier nommé "backupbdd.sql.txt". SqlCmd n’ayant rien à afficher dans la console DOS, celle-ci ne renvoie rien de particulier : Voir Figure 11. Le fichier résultat contient les lignes suivantes : Processed 248 pages for database ‘PerfSamples’, file ‘PerfSamples’ on file 5.
Processed 1 page for database ‘PerfSamples’, file ‘PerfSamples_log’ on file 5. BACKUP DATABASE successfully processed 249 pages in 0.249 seconds (7.812 MB/sec).
Téléchargez cette ressource
Comment lutter contre le Phishing ?
Dans un environnement cyber en constante mutation, le phishing évolue vers des attaques toujours plus sophistiquées combinant IA, automatisation et industrialisation. Une réalité complexe qui exige des mesures de sécurité avancées et repensées au-delà de l’authentification multifacteur. Découvrez les réponses technologiques préconisées par les experts Eviden et les perspectives associées à leur mise en œuvre.