Administration
SQL Server 2012
Connaissances préalables
Pour comprendre et maitriser les techniques et concepts abordés dans ce cours il faut avoir une base en informatique et certaines connaissances énumérées ci-dessous :
Connaissances de base du système d’exploitation Windows Expérience pratique de Transact-SQL
Expérience pratique des bases de données relationnelles Expérience en matière de conception de bases de données Connaissance et expérience pratique du langage VB,NET
Objectif :
Installer et configurer SQL Server 2012; gérer des fichiers de base de données;
sauvegarder et restaurer des bases de données; gérer la sécurité;
analyser et comprendre SQL Server 2012;
transférer les données dans et à partir de SQL Server 2012; automatiser des tâches d’administration;
comprendre et optimiser l’architecture de SQL Server; répliquer des données entre instances SQL Server 2012. lecture d’une base de données SQL server 2012 en VB.NET
Chapitre I : Présentation de SQL Server 2012
L’objectif du chapitre est :
Comprendre le fonctionnement de SQL Server ; Présenter les différents composants de SQL Server ; Présenter l’architecture globale de SQL Server Comprendre l’architecture d’une base de données
1.1 - Fonctionnement de SQL Server
Les types de serveur
OLDP (OnLine Transactional Processing)
Serveur transactionnel : Un serveur sous lequel un certain nombre de
transactions de type LMD (Langage de Manipulation de données) vont s’exécutées. Un serveur qui va supporter beaucoup de petites transactions qui manipuleront un petit volume de données.
OLAP (OnLine Analytical Processing)
Serveur décisionnel ou Data Warehouse : c’est un entrepôt de données. Un
serveur qui servira en stocker l’ensemble des données consolidées. Les données qui proviennent des différentes sources (BD Oracle, SQL Server, MySQL …). Un serveur OLAP va donc manipuler de gros volumes de données en utilisant de grosses requêtes générant une charge importante.
Ainsi donc avant toute installation il faut connaitre le rôle du serveur pour faire le bon choix du type de serveur à installer.
1.2 - Les composants de SQL Server
Le moteur de données est composé de plusieurs logiciels. La plus part s’exécutent sous forme de services; Certains possèdent des interfaces graphiques
D’autres sont accessibles via une ligne de commande Les principaux composants sont :
SQL Server Instance SQL :
C’est le serveur de base de données (le moteur). C’est le principal composant Il est impossible d’avoir une instance SQL server sans que le moteur de base de données ne soit installé.
S’exécute en tant que service Windows ;
Elle est référencée sous le nom MSSQLSERVER pour une instance par défaut (instance dans laquelle on choisit le nom par défaut).
Elle sera MSSQLSERVER$nomInstance dans le cas d’une instance nommée (une instance pour laquelle on choisit de donner un nom différent du nom par défaut).
Il faut savoir qu’il est possible d’installer plusieurs instances sur un même serveur. Cependant il impossible d’avoir sur un même serveur deux instances de même nom.
SQL Agent :
En général chaque instance à son propre moteur de base de données et possède son propre SQL Agent.
Il gère l’exécution de tâches planifiées, la surveillance de SQL Server et le suivi des alertes
Il s’exécute en tant que service Windows Il est directement lié à une instance SQL Server
Il est référencé dans le gestionnaire de service sous le nom SQL Server
Agent(MSSQLSERVER) pour une instance par défaut et SQL Server Agent(nomInstance) dans le cas d’une instance nommée.
Microsoft Full Text Search :
C’est un composant utilisé pour effectuer des recherches de documents de type texte.
Gère l’indexation des documents de type texte Gère les recherches par rapport aux mots SQL Server Intégration Services (SSIS) :
Outil d’importation et d’exportation de données
Intègre des assistants pour créer un ETL (extraction, transformation et chargement)
Termes à connaitre
Les packages = unités de travail
Les conteneurs qui fournissent la structure des packages SQL Server Analysis Services (SSAS) :
Outil d’analyse OLAP et Data mining de Microsoft Permet de construire des cubes OLAP
Idéal pour des projets décisionnels SQL Server Reporting Services (SSRS) :
Créer des rapports pour différents sources de données
Créer des rapports de types interactifs, tabulaires, graphiques ou libres à partir de source de données XML relationnelles et multidimensionnelles
La replication des données :
Permet de positionner les données au plus près des utilisateurs et de réduire les temps de traitement. (Avoir un serveur central et des serveurs secondaires)
Permet un travail en mode asynchrone pour faciliter la gestion des pics de forte activité en stockant les demandes de travail avant de les traiter CLR :
L’intégration du CLR dans SQL Server permet de développer des procédures et fonctions en utilisant les langages VB.Net et C#
1.3 - L’architecture globale de SQL Server et les outils
L’architecture de SQL Server :
Une installation de SQL Serveur contient au minimum une instance par défaut. Instance par défaut
Elle est identifiée par le nom réseau de l’ordinateur sur lequel elle s’exécute.
Instance nommée
Elle est identifiée par le nom réseau de l’ordinateur sur lequel elle s’exécute suivi d’un nom d’instance.
Les outils de SQL Server :
Les clients de SQL Server
Les composants qui permettent d’attaquer un serveur de base de données SQL Server.
SQL Server Management Studio
Permet de réaliser toutes les opérations au niveau du serveur de base de données.
Gestionnaire de configuration SQL Server
Pour gérer les services liés à SQL Server.
SQL Server Profiler
Pour suivre et analyser la charge de travail d’une instance SQL Server. Assistant paramétrage du moteur de base de données
Permet une optimisation du fonctionnement du serveur de base de données.
sqlcmd
C’est un outil qu’un DBA doit impérativement connaitre. Outil de ligne de commande
Exécuter des requêtes approuvées Exécuter des scripts de commandes
Etablir une connexion d’administration dédiée (DAC)
1.4 - L’architecture d’une base de données
Base de données SQL Server :
Une base de données permet de stocker des objets logiques.
Les données : tables, indexes, types de données, contraintes d’intégrité, valeurs par défaut, règles.
Accès aux données : vues, procédures et fonctions Gestion de l’intégrité complexe : déclencheur
Chaque base de données système est Master
C’est la base mètre elle est le dictionnaire des données. Elle contient une référence de l’ensemble des objets crées.
MSDB
Model
Elle va permettre de définir le model de création d’une base de données. Chaque base de données créée va s’appuyer sur la structure de la base model. La base de données créée est une copie de la base model. Une modification apportée à la base Model va impacter l’ensemble des bases.
Tempdb
Elle va servir pour toutes les opérations de type temporaire.
Ressource
Elle permet de stocker les évolutions apportées aux différentes versions de SQL Server 2012 pour faciliter les migrations.
Les tables systèmes :
Les bases de données masters contiennent des tables systèmes Utilisées directement par le moteur de SQL Serveur. Déconseillé d’accéder directement à ces tables Quelques tables systèmes :
sys.server_principals: Liste des connexions définies sur le serveur sys.sysmessages: Une ligne pour chaque message ou avertissement sys.sysdatabases: Une ligne pour chaque base de données
sys.sysusers: Une ligne pour chaque utilisateur défini au niveau de la base de données courante
Les procédures stockées système :
Interroger les tables système.
Connaître l’état du serveur, de la base … Effectuer des opérations de configuration Quelques procédures stockées systèmes:
sp_helpsp_help
[
nom_objet]
: Information sur l’objet indiqué. sp_helpdbsp_helpdb
[
nom_base_données]
: Information sur la base de données indiquée. sp_whosp_who: Liste des utilisateurs actuellement connectés
Le catalogue:
Contient des vues systèmes
Toutes ces vues sont présente dans un schéma sys. Regroupées par thèmes
Objets, types et index Serveurs liées
CLR
Les fonctions systèmes:
Utilisable avec des commandes Transact SQL Quelques procédures stockées systèmes:
DB_ID: Retrouve l’identification de la base de données.
USER_NAMEUSER_NAME : Retrouve le nom de l’utilisateur à partir de son identifiant.
Schéma d’information:
Ensemble de vues
Chapitre II :
Installation et configuration de SQL Serveur 2012
L’objectif du chapitre :
Comprendre les étapes du processus d’installation de SQL Server 2012 Préparer l’installation avec l’outil de configuration système
Réalisation d’une installation manuelle et d’une installation automatisée Vérifier et valider une instance
2.1 - Préparation de l’installation
Les étapes du processus d’installation de SQL Server 2012
2.2 - Réalisation d’une Installation manuelle de SQL Server 2012
TP pratique d’une installation manuelle de SQL Server 2012.
Etape 1 : Lancement du programme d’installation
Le Menu de gauche du centre d’installation nous donne les différentes actions que nous pouvons effectuées.
La planification :
Qui contient un certain nombre d’outils. Celui qui nous intéresse ici est l’outil d’analyse de configuration système.
Cet outil nous permet de vérifier que notre système est près pour l’installation.
L’installation :
Le Menu Installation nous présente quatre outils. Nous allons lancer l’outil :
« Nouvelle installation autonome de SQL Server ou ajout de fonctionnalités à une installation existante ».
Après une autre vérification des composants nécessaires pour l’installation, le programme
d’installation va installer les fichiers d’installation.
Après l’ajout de la clé d’installation et l’acceptation du contrat de contrat de licence nous avons une étape importante qui est le « Rôle de l’installation ». Nous avons 3 ou 2 options. Nous choisissons celle qui nous permet de choisir et installer les fonctionnalités de SQL Server nécessaires pour gérer notre serveur.
2.3 - Réalisation d’une Installation automatique de SQL Server 2012
Mise en œuvre.
Création d’un fichier de configuration .ini Démarrage de l’installation automatisée
setup.exe /CONFIGURATIONFILE=chemin d’accès du fichier.ini
2.4 - SQL Server Management Studio (SSMS)
C’est l’outil principal de gestion et d’administration. Il utilisé par les administrateurs et les développeurs.
Un requêteur avancé
Permet une gestion graphique des instances et des objets Permet une gestion centralisée des instances distantes Intègre la complétion
2.5 - SQLCMD
C’est un outil incontournable dans l’administration de SQL Server. Un outil de gestion et d’administration en mode ligne de commande.
Permet l’exécution de requêtes et des scripts
Etablir une connexion d’administration dédiée (DAC)
2.6 - Configuration de SQL Server 2012
Il est question ici de voir les différents moyens de configuration de SQL Server 2012. Les éléments de configurations sont les services (Les Moteurs, …les composants sélectionnés lors de l’installation). Les états Démarré Suspendu Arrêté Via
Gestionnaire de configuration SQL Server Gestionnaire de service Windows
Utilisation de l’outil SSMS (SQL Server Management Studio)
Inscrire un serveur
Gérer la configuration d’un serveur (Mot de passe de l’administrateur, Gestion des ressources)
Chapitre III :
Les bases de données SQL Server 2012
3.1 - Architecture globale de SQL Server
Une base de données contient deux types de fichiers : Fichiers de données
Fichier primaire de données (obligatoire, extension .mdf) (Contient le catalogue de la base de données)
Fichier secondaire de données (facultatif, extension .ndf) (Contient les objets et les données utilisateurs)
Fichiers journaux (au moins 1, extension .ldf)
Enregistre toute les modifications de la base de données
Fonctionnement des fichiers journaux :
Les fichiers de données :
Rattaché à une seule base de données
Structuré en pages de 8k
Les pages contiennent les enregistrements
Unité d’échange entre le cache de données et les fichiers de données La taille maximale d’une ligne est de 8060 octets (hors type texte et
image)
Deux méthodes :
En transact-SQL
SQL Server Management Studio (SSMS)
Les informations nécessaires :
Le nom de la base de données, la collation
La taille L’espace de stockage En Transact SQL : Cas pratique : Nom : gecos
Deux fichiers de données
gecos_data01.mdf (taille = 10MB, maxsize=100B et autoextend OFF) gecos_data02.ndf (taille = 10MB, maxsize=100B et autoextend 10MB) Stockage dans C:\MSSQL\DATA
Un fichier journal
gecos_log01.ldf(taille = 15MB, maxsize=200B et autoextend 10%) Stockage dans C:\MSSQL\LOGS
3.3 - Les groupes de fichiers
Un groupe de fichiers est une :
Structure logique
Permet de regrouper des fichiers de données et de les gérer comme des unités logiques. (Unité logique auquel vont s’attacher des fichiers physiques de type .mdf ou .ldf)
Nous avons :
Deux types de groupe de fichier
Un type primaire. (crée par défaut par le système) Un autre type défini par l’utilisateur
Utilisation :
Répartition des données par type (tables, indexes) Répartition des données pour la charge
Création et Ajout de fichiers au groupe :
Syntaxe de création de groupe de fichiers
ALTER DATABASE <nom_base_données>
ADD FILEGROUP <nom_tablespace>;
Syntaxe d’ajout de fichiers au groupe
ALTER DATABASE <nom_base_données>
ADD FILE <spécification du fichier> TO FILEGROUP <nom_tablespace>;
Objectif
Diviser des tables volumineuses en plusieurs tables
Optimiser le stockage (Stockage sur différents groupes de fichiers) Montée en charge
Un exemple
Implémentation
Définir une fonction de partitionnement Définir un schéma de partitionnement Créer les tables partitionnées
Possibilité de créer un index sur une table partitionnée (l’index crée est partitionné selon la table)
Fonction de partition
Définir la clé de partitionnement (champ de répartition pertinent) • Permet de répartir les données entre les différentes partitions • Permet d’orienter les données sur un groupe de fichier ou un autre • Utilise des plages de valeurs bornées
Syntaxe
CREATE PARTITION FUNCTION <nomfonction> ( parametre_type) AS RANGE [ LEFT | RIGHT ] FOR VALUES ( [ valeurLimite [ ,... ] ]
Parametre: colonne de tous types sauf timestamp, varchar(max), nvarchar(max) et
varbinary utilisé pour calculer la clé de partitionnement.
Schéma de partition
• Permet d’affecter chaque partition à un groupe de fichiers
• Possibilité de spécifier plus de groupe de fichiers que de partitions définis
• Possibilité d’affecter toutes les partitions à un seul groupe de fichiers (non recommandé)
Syntaxe
CREATE PARTITION SCHEME nomSchemaPartition AS PARTITION nomFonctionPartition
[ ALL ] TO ( { groupeDeFichier | [ PRIMARY ] } [,_]) [ ; ]
nomSchemaPartition: identifiant du schéma de partitionnement.
nomFonctionPartition: nom de la fonction de partitionnement associée au schéma. groupeDeFichier: nom du ou des groupes de fichiers utilisés par les différentes
partitions.
Création d’une table de partitionnée
Syntaxe
CREATE TABLE nomTable( definitionColonne [,...]
) ON nomSchemaPartition(colonneUtiliséePourCalculerLaPartition)[;]
Création d’un index partitionné
Syntaxe
CREATE INDEX nomIndex ON nom Table(colonne1, …)
Les bases de données par défaut
• master base de données système
• model base de données modèle pour les nouvelles bases de données • msdb base de stockage des alertes et travaux pour l’agent SQL Server • tempdb base de stockage des objets et données temporaires
Cette base est recrée à chaque redémarre du SGBD
Les options de configuration
• AUTO_SHRINK {ON|OFF} => IsAutoShrink • READ_ONLY, READ_WRITE => Updateability
• SINGLE_USER, RESTRICTED_ USER, MULTI_USER => UserAccess • AUTO_CREATE_ STATISTICS { ON | OFF } => IsAutoCreateStatistics • AUTO_UPDATE_ STATISTICS { ON | OFF} => IsAutoUpdateStatistics • AUTO_CLOSE => IsAutoClose
• RECOVERY => recovery • AUTRE => status, collation Afficcher la valeur des options
• Fonction DATABASEPROPERTYEX Syntaxe
SELECT DATABASEPROPERTYEX(‘NomBase',‘NomOption');
• Utilisation de sys.databases
SELECT name,collation_name,user_access_desc,state_desc FROM sys.databases;
• Les autres procédures
sp_helpdb, sp_spaceused;
Modification des options de configuration
En TRANSACT-SQL
- Syntaxe
Chapitre IV :
Sauvegarde des bases de données SQL Server 2012
4.1 - Introduction à la sauvegarde
Pourquoi sauvegarder • Panne matérielle (support)
• Mauvaise manipulation des utilisateurs • Panne serveur
• Déplacement de base de données
Caractéristiques • Sauvegarde à chaud
• sauvegarde cohérente des données
• Aucune opération de création ou de modification de base de données n’est possible pendant une opération de sauvegarde
• Impossible de créer des indexes pendant la sauvegarde • Exécution d’opérations non journalisées et non autorisées
Les principales méthodes de sauvegardes • Sauvegarde complète
• Sauvegarde différentielle
• Sauvegarde du journal des transactions • Sauvegarde des groupes de fichiers • Partielle
Sauvegarde complète de base de données
• Sauvegarde toutes les données de la base de données
• Sauvegarde les modifications validées pendant la sauvegarde • Point de départ pour toute stratégie de sauvegarde
Sauvegarde différentielle
• Sauvegarde les parties de la base de données modifiées depuis la sauvegarde complète
• Sauvegarde toutes les transactions intervenues pendant la sauvegarde différentielle
Sauvegarde du journal des transactions • Pré-requis : sauvegarde complète indispensable • Nécessite le mode de récupération COMPLET
Sauvegarde partielle
• Contient toutes les données du groupe PRIMAIRE
• Contient chaque groupe de fichiers en LECTURE/ECRITURE • Ne contient pas les groupes de fichiers en LECTURE seule
4.2 - Sauvegarde complète
Destination des sauvegardes Disque
• Les unités physiques = nom complet du fichier physique au niveau de l’OS
• Les unités logiques: s’appuient sur des fichiers physiques
Bande
Les privilèges nécessaires pour réaliser une sauvegarde Rôles de serveur
L’instruction BACKUP Syntaxe
BACKUP DATABASE <nom base> TO <unite logique> | DISK= <chemin_nom> WITH INIT |
NOINIT | FORMAT | CHECKSUM | COMPRESSION
Sauvegarde avec mise en mirroir Syntaxe
BACKUP DATABASE <nom base> TO <unite logique> | DISK= <chemin_nom>MIRROR TO
<unite logique> | DISK= <chemin_nom>
Vérifier l’intégrité d’une sauvegarde Syntaxe
RESTORE VERIFYONLY FROM <unite logique> | DISK=<chemin_nom>
4.3 - Sauvegarde différentielle
Caractéristiques
• Sauvegarde toutes les extensions modifiées depuis la dernière sauvegarde
Complète
• Permet de réduire le nombre de sauvegarde du journal des transactions • Utilisable quel que soit le mode de récupération utilisé
Commande BACKUP Syntaxe
BACKUP DATABASE <nom base> TO DISK = <nom_fichier> WITH DIFFERENTIAL
Utilisable quel que soit le mode de récupération utilisé
4.4 - Sauvegarde du journal des transactions
Caractéristiques
• Utilisable uniquement avec le mode de récupération COMPLET et
JOURNALISE EN BLOC
• Autorisée uniquement après une sauvegarde complète
• Débute au numéro LSN (Log Sequence Number) oû a pris fin la précédente sauvegarde de journal
• Sauvegarde toutes les transactions jusqu’à la transaction actuelle ouverte complète
journal des transactions
Commande BACKUP Syntaxe
BACKUP LOG <nom_base> TO DISK = <nom_fichier> WITH INIT
4.5 - Sauvegarde de groupe de fichiers
Caractéristiques
• Stratégie de sauvegarde alternative aux sauvegardes complètes
• Permet de sauvegarder des groupes de fichiers
• Point de départ: sauvegarde initiale de tous les groupes de fichiers de la base de données
• Mode de récupération: COMPLET ou JOURNALISE EN BLOC
Commande BACKUP Syntaxe
BACKUP DATABASE <nom_base> FILEGROUPE =<nom_groupe_fichier> TO DISK = <nom_fichier>
BACKUP DATABASE <nom_base> FILEGROUPE =<nom_groupe_fichier> TO DISK = <nom_fichier> WITH DIFFERENTIAL
4.6 - Sauvegarde partielle
Caractéristiques• Utilisable avec tous les modes de récupération
• Permet d’exclure des groupes de fichiers en lecture • Identique à une sauvegarde complète mais ne contient pas tous les groupes de fichiers
• La sauvegarde partielle d'une base de données en lecture seule contient uniquement le groupe de fichiers primaire
• Pour une base de données accessible en lecture/écriture, une sauvegarde partielle contient toutes les données du groupe de fichiers primaire, de chaque groupe de fichiers en lecture/écriture
Commande BACKUP Syntaxe
BACKUP DATABASE <nom_base> READ_WRITE_FILEGROUPS TODISK = <fichier_nom>
Chapitre V :
Restauration des bases de données SQL Server 2012
5.1 - Les pré-requis à la restauration
La vérification des sauvegardes RESTORE HEADERONLY RESTORE FILELISTONLY RESTORE LABELONLY RESTORE VERIFYONLY
Avant de restaurer
Aucune connexion utilisateur ne doit être en cours
Interdire toute nouvelle connexion au serveur pendant la restauration Mode mono-utilisateur
5.2 - Restauration des bases de données
Les différents types de restauration
• Restauration d’une sauvegarde complète
• Restauration d’une sauvegarde différentielle
• Restauration d’une sauvegarde de journal de transactions
• Restauration partielle
• Restauration d’une page corrompue
Les options de la commande RESTORE • RECOVERY
• NORECOVERY
• FILE
• MOVE... TO • REPLACE
• STOPAT (PITR: point in time recovery)
Un snapshot c’est quoi ?
• Une copie en lecture seule des bases de données
• Dépourvue de journal des transactions
• Création d’un fichier épars
• Initialement aucunes données
• Possible de sauvegarder, restaurer ou détacher une capture instantanée de base de données
• Le snapshot doit se trouver dans la même instance que la base de données source
5.5 - Les snapshots (Captures instantanées) de base de données
Création d’une capture instantanée CREATE DATABASE <nom_capture> ON (NAME =<nom_fichier_logique>, FILENAME = <nom_fichier_OS> ) [ ,... ]
Chapitre VI :
Importation et exportation des bases de données SQL
Server 2012
6.1 - Introduction aux outils d’import / export
Les outils de transfert
• SSIS (SQL Server Intégration Service)
Extraction, transformation, chargement
• BCP
Outil en ligne de commande
Permet d’importer et d’exporter entre un fichier et SQL Server
• BULK INSERT
• Réplication
• SELCT INTO et INSERT
6.2 - SSIS (SQL Server Integration Service)
Terminologie
• Les packages (unités de travail à exécuter)
• Les tâches (se chargent du travail dans les packages)
Utilisation
• Assistance
• Concepteurs SSIS
• Utilitaires de ligne de commande dtexec
6.3 - BCP (BULK Copy Program)
Caractéristiques
• Outil en ligne de commande
• Permet d’exporter les données d’une table ou d’une requête SQL
• Permet d’importer un fichier texte dans une table SQL Server
Outil BCP
• syntaxe
bcp {nom objet | requete} { in | out | queryout | format }
<fichier_de_donnees> -S -T...
6.4 - BULCK INSERT
Caractéristiques
• Importer un fichier de données dans une table ou vue de base de données
dans un format spécifié par l’utilisateur
Commande BULK INSERT
• syntaxe
[ database_name . [ schema_name ] . | schema_name .] [ table_name | view_name ] FROM 'data_file'
[ WITH (
Chapitre VII :
Gestion de la sécurité d’accès
7.1 - Authentification SQL Server
Introduction
• Les entités de sécurité : compte de sécurité qui dispose d’un accès au
serveur de données SQL.
• Les sécurisables : objets gérés par le serveur (serveur, base, schema)
• Les autorisations : sont accordées aux entités de sécurité afin de
pouvoir travailler avec les sécurisables.
Architecture de la sécurité d’accès
Les modes d’authentification
• Mode d’authentification Windows
Utilisateurs authentifiés par Windows
L’accès des utilisateurs se fait via une connexion mappée à leur compte Windows
Mode d’authentification par défaut
• Mode d’authentification mixte (SQL Server et Windows)
Les utilisateurs connectés via une connexion Windows déclarés sous SQL Server sont validés
Les utilisateurs connectés via un compte non Windows déclarés sous SQL Server sont validés
• Windows
Group Windows, Compte d’utilisateur de domaine, Compte d’utilisateur local
• SQL Server
Connexion SQL Server, Rôle de serveur
• Base de données
Utilisateur, Rôle de base de données, Rôle d’application
• Configuration des identifiants SQL Server Identifiant = accès des utilisateurs à SQL Server
• Création d’un identifiant (authentification Windows) Syntaxe
CREATE LOGIN [<domaine>\<nom_connexion>] FROM WINDOWS [WITH DEFAULT_DATABASE=<base_de_données> | DEFAULT_LANGUAGE=<langue>
• Création d’un identifiant (authentification SQL Server) Syntaxe
CREATE LOGIN <nom_connexion> WITH PASSWORD=<mot_de_passe> [MUST_CHANGED] |, DEFAULT_DATABASE=<base_de_donnes> |,
DEFAULT_LANGUAGE=<langue> | , CHECK_EXPIRATION={ ON | OFF} | CHECK_POLICY={ ON | OFF} | , [CREDENTIAL=<nom_credit>
• Les vues systèmes
sys.server_principals: Entités de sécurité définis au niveau serveur
sys.sql_logins: Liste des connexions au niveau serveur
• Modification
Syntaxe
ALTER LOGIN <nom_utilisateur> WITH <option>
Syntaxe
ALTER LOGIN <nom_utilisateur> DISABLE
• Suppression
Syntaxe
DROP LOGIN <nom_utilisateur>
DROP LOGIN <domaine/nom_utilisateur>
7.2 - Les credentials
Permettent à des connexions en mode sécurité SQL Server d’accéder à une ressources externe au serveur de base de données
Un credential = un compte Windows
Un compte SQL Server est rattaché à un credential Création d’un credential
Syntaxe
CREATE CREDENTIAL <nom_du_credit>
WITH IDENTITY = <‘identité’> [, SECRET = <‘password’>];
7.3 - Les utilisateurs de la base de données
Caractéristiques
• Crée au niveau base de données
• Rattaché à un login de connexion au niveau serveur
- Sauf pour les utilisateurs guest, sys et INFORMATION_SHEMA
• Les droit sur les objets (base, schema, objets) sont des données aux utilisateurs de base de données
Les utilisateurs particuliers
• Utilisateur dbo
- Présent dans toutes les bases données par défaut
- Les membres du rôle sysadmin et du compte de connexion sa sont mappés à dbo
- Ne peut être supprimé
- Tous les objets créés par un membre de sysadmin appartiennent automatiquement à dbo
- Présent dans toutes les bases données par défaut
- Autorise les connexions sans compte utilisateur à accéder à la base
- Activation du compte guest
GRANT CONNECT TO guest;
- Désactivation du compte guest
REVOKE CONNECT FROM guest;
Création d’un utilisateur d’une base données Syntaxe
CREATE USER <utilisateur> FOR LOGIN <login> WITH DEFAULT_SCHEMA=<schema>
Modification d’un utilisateur de base données Syntaxe
ALTER USER <utilisateur> WITH NAME=<new_nom>, DEFAULT_SCHEMA=<schema>
Suppression d’un utilisateur de base données Syntaxe
DROP USER <utilisateur>
Les vues systèmes
Sys.database_principals
Savoir qui est connecté
Procedure
sp_who
7.4 - Les schémas
Caractéristiques
• Apparue dans MSSQL en 2005
• Objet logique (enveloppe)
• Permet un regroupement logique des objets
• Permet de gérer d’une manière plus optimale les droits sur les objets • Associé à un utilisateur
• Schéma par défaut dbo
• Pour accéder à des objets en dehors de son schéma, faut faire précéder le nom de l’objet par le nom du schéma.
Création
Syntaxe
Modification
Syntaxe
ALTER SCHEMA <nom_schema> TRANSFER <objet>;
Suppression (doit être vide) Syntaxe
DROP SCHEMA <nom_schema>;
7.5 - Gestion des droits sous SQL Server
Caractéristiques
• Plusieurs niveaux d’attribution des privilèges
- Au niveau serveur - Au niveau base - Au niveau schéma - Au niveau objets
• Deux types de droits au niveau base - Droits d’utilisation d’instructions - Droits sur les objets
Gestion des privilèges
- GRANT pour l’attribution des privilèges - REVOKE pour retirer des privilèges
- DENY pour interdire l’utilisation d’un privilège
Les privilèges d’utilisation des instructions
- CREATE DATABASE pour créer une base de données - CREATE PROCEDURE pour créer une procédure stockée - CREATE TABLE pour créer une table
- BACKUP DATABASE pour réaliser une sauvegarde - CREATE DEFAULT
- CREATE RULE pour créer un rôle - CREATE VIEW pour créer une vue
- BACKUP LOG pour réaliser une sauvegarde du journal des transactions
La commande GRANT
GRANT <nom_privilege> [, ...] TO <utilisateur> > [,...] [ WITH GRANT OPTION ]
La commande REVOKE
REVOKE [ GRANT OPTION FOR] <nom_privilege> [, ...]FROM <utilisateur> [, ...] [CASCADE]
DENY<nom_privilege> [, ...] TO <utilisateur> [, ...] [CASCADE]
Les privilèges sur les objets
• Tables
SELECT, INSERT, UPDATE, DELETE • Procédures
EXECUTE
La commande GRANT
GRANT { ALL | <nom_privilege>[ (colonne [, ...] ] [, ...]) } ON
<nom_objet> TO <utilisateur> [, ...] [ WITH GRANT OPTION ]
La commande REVOKE
REVOKE [ GRANT OPTION FOR ] { ALL | <nom_privilege>[ (
colonne [, ...] ] [, ...] ) } ON <nom_objet> [ ( colonne [, ...] ] [, ...] ) FROM <utilisateur> [, ...] [ CASCADE ]
La commande DENY
DENY { ALL | <nom_privilege>[ ( colonne [, ...] ] [, ...] ) } ON <nom_objet> [ ( colonne [, ...] ] [, ...] ) TO <utilisateur> [, ...] [ CASCADE ]
Chapitre VIII : Automatisation de la
Gestion de SQL Server 2012
8.1 - Agent SQL Server
Caractéristiques
• Permet d’automatiser certaines tâches.
• Chaque agent est rattaché à une seule instance
• Log les erreurs SQL Server dans l’observateur d’évenement Windows • Stock les informations dans la base de données msdb
• Terminologie Tâches planifiée Les alertes Les opérateurs
8.2 - Configuration de la messagerie
Caractéristiques• Utilise le protocole SMTP pour envoyer des mails
• Possède son propre processus de fonctionnement • Non actif par défaut
8.3 - Les opérateurs
Caractéristiques
• Correspond à une personne physique ou à un groupe dans l’entreprise
• Permet à l’Agent SQL Server d’envoyer des messages d’alerte ou de fin de travaux
- Messagerie - Net send
- Radiomessagerie
• Les informations sur les opérateurs sont stockées dans la base de données msdb
8.4 - Alertes
Caractéristiques
Permettent
• D’avertir un opérateur lorsqu’un évènement survient
Erreurs SQL Server
• En fonction du numéro de l’erreur • En fonction de la gravité
Créer ses propres messages d’erreur
• sp_addmessage pour créer un message • sp_altermessage pour supprimer un message • sp_dropmessage pour supprimer un message Création d’une alerte
• Via SQL Server Management Studio • Via Transact SQL
sp_add_alert pour créer une alerte
sp_update_alert pour mettre à jour une alerte sp_delete_alert pour supprimer une alerte
8.5 - Travaux
Caractéristiques
Constitué d’une ou plusieurs étapes (tâches) Deux états possibles pour une tâche
- Echec - Succès
Enchainement possible entre les étapes
Plusieurs types d’étapes
- Transact SQL, Commande système, Package, …