Vous êtes sur la page 1sur 25

Module 

10
Attribution de rôles
de serveur et de base
de données
Vue d'ensemble du module
• Utilisation de rôles serveur
• Utilisation de rôles de base de données fixes
• Création de rôles de base de données définis
par l'utilisateur
Leçon 1 : Utilisation de rôles serveur
• Autorisations de portée serveur
• Autorisations de portée serveur classiques
• Vue d'ensemble des rôles serveur fixes
• Rôle serveur public
• Rôles serveur définis par l'utilisateur
• Démonstration 1A : Attribution de rôles serveur
Autorisations de portée serveur
• Les autorisations au niveau du serveur peuvent être attribuées
de trois manières 
• Rôles serveur fixe
• Rôles serveur définis par l'utilisateur
• Autorisations de portée serveur spécifiques
• Réduction de l'utilisation des rôles serveur fixe
• Attribuer des autorisations plus spécifiques

USE master;
GO
GRANT ALTER ON LOGIN::HRApp
TO [AdventureWorks\Holly];
GO
GRANT ALTER ANY DATABASE
TO [AdventureWorks\Holly];
GO
Autorisations de portée serveur classiques
• La base de données active doit être master lorsque
des autorisations de portée serveur sont attribuées
• Pour afficher les attributions d'autorisations, lancez
une requête sur la vue sys.server_permissions

Autorisations de portée serveur classiques


ALTER ANY DATABASE ALTER TRACE
BACKUP DATABASE BACKUP LOG
CONNECT SQL CONTROL SERVER
CREATE DATABASE SHUTDOWN
VIEW ANY DEFINITION VIEW SERVER STATE
Vue d'ensemble des rôles serveur fixes
Autorisation au niveau
Rôle Description du serveur
sysadmin Effectuer toute activité CONTROL SERVER (avec l'option GRANT)

Créer et modifier des bases


dbcreator ALTER ANY DATABASE
de données

diskadmin Gérer des fichiers disque ALTER RESOURCES

ALTER ANY ENDPOINT, ALTER


Configurer des paramètres RESOURCES, ALTER SERVER STATE,
serveradmin à l'échelle du serveur ALTER SETTINGS, SHUTDOWN, VIEW
SERVER STATE
Gérer et auditer des
securityadmin ALTER ANY LOGIN
connexions serveur

Gérer des processus ALTER ANY CONNECTION


processadmin SQL Server ALTER SERVER STATE

Exécuter l'instruction BULK


bulkadmin ADMINISTER BULK OPERATIONS
INSERT

Configurer les serveurs liés


setupadmin ALTER ANY LINKED SERVER
et de réplication
Rôle serveur public

Public est un rôle serveur particulier dont l'étendue


est définie au niveau du serveur

• N'est pas considéré comme un rôle serveur fixe car ses


autorisations peuvent être modifiées
• Par défaut, les autorisations suivantes sont attribuées 
• Autorisation VIEW ANY DATABASE
• Autorisation CONNECT sur les points de terminaison par défaut
Rôles serveur définis par l'utilisateur

• Nouvelle fonctionnalité dans SQL Server 2012


• Des autorisations spécifiques peuvent être attribuées aux rôles
• Contrôle des autorisations beaucoup plus précis qu'avec les
rôles serveur fixes
• Doit généralement être utilisé à la place des rôles serveur fixes

USE master;
GO
CREATE SERVER ROLE staff;
GO
Démonstration 1A : Attribution de rôles serveur
Dans cette démonstration, vous allez apprendre à
• Afficher les rôles serveur fixes disponibles via l'interface
utilisateur graphique 
• Attribuer un rôle serveur fixe via l'interface utilisateur
graphique 
• Afficher les rôles serveur fixes disponibles avec T-SQL 
• Attribuer un rôle serveur fixe avec T-SQL 
• Afficher les membres des rôles serveur fixes avec T-SQL 
• Créer un rôle serveur défini par l'utilisateur avec T-SQL 
• Afficher les autorisations de serveur actuellement attribuées
Leçon 2 : Utilisation de rôles de base
de données fixes
• Autorisations dans l'étendue de la base de données
• Vue d'ensemble des rôles de base de données fixes
• Affectation des utilisateurs à des rôles
• Propriétaire de la base de données
• Démonstration 2A : Gestion des rôles et des utilisateurs
Autorisations dans l'étendue de la base de données
• Les autorisations au niveau de la base de données peuvent
être attribuées de trois manières 
• Rôles de base de données fixes
• Rôles de base de données définis par l'utilisateur
• Autorisations spécifiques dans l'étendue de la base de données

• Réduction de l'utilisation des rôles de base de données fixes


• Attribuer des autorisations plus spécifiques

USE AdventureWorks;
GO
GRANT CREATE TABLE TO HRManager;
GO
GRANT VIEW DEFINITION TO James;
GO
Vue d'ensemble des rôles de base de données fixes
Rôle Description
Effectue toutes les opérations de configuration et de maintenance
db_owner
sur la base de données et peut la supprimer

db_securityadmin Modifie l'appartenance au rôle et gère les autorisations

db_accessadmin Ajoute ou supprime l'accès à la base de données pour les connexions

db_backupoperator Sauvegarde la base de données

db_ddladmin Exécute une commande DDL quelconque dans la base de données

Ajoute, supprime ou modifie les données de toutes les tables


db_datawriter utilisateur

db_datareader Lit toutes les données de toutes les tables utilisateur

Ne peut pas ajouter, supprimer ni modifier les données dans


db_denydatawriter les tables utilisateur

db_denydatareader Ne peut pas lire les données dans les tables utilisateur
Affectation des utilisateurs à des rôles
• Les utilisateurs peuvent être
affectés aux rôles
• Utilisation de l'interface utilisateur
graphique
• Utilisation de T-SQL

USE AdventureWorks;
GO
ALTER ROLE db_datareader
ADD MEMBER James;
GO
Propriétaire de la base de données

dbo
La connexion sa et les membres du rôle
sysadmin sont mappés au compte dbo, ainsi
que le propriétaire de la base de données
Démonstration 2A : Gestion des rôles
et des utilisateurs
Dans cette démonstration, vous allez apprendre à
• Afficher les rôles de base de données fixes disponibles
via l'interface utilisateur graphique 
• Attribuer un rôle de base de données fixe via
l'interface utilisateur graphique 
• Afficher les rôles de base de données fixes disponibles
avec T-SQL 
• Attribuer un rôle de base de données fixe avec T-SQL 
• Afficher les membres des rôles de base de données
fixes avec T-SQL
Leçon 3 : Création de rôles de base de données
définis par l'utilisateur
• Utilisation des rôles de base de données définis par l'utilisateur
• Application de rôles dans des scénarios courants
• Démonstration 3A : Utilisation des rôles de base de données
définis par l'utilisateur
• Définition des rôles d'application
• Démonstration 3B : Utilisation des rôles d'application
Utilisation des rôles de base de données définis
par l'utilisateur
• Les rôles de base de données peuvent être créés, modifiés
et supprimés
• Instruction CREATE ROLE pour créer
• Les rôles ont des propriétaires
• Les autorisations sont attribuées au rôle
• Les autorisations des rôles sont héritées par les membres du rôle

USE MarketDev;
GO

CREATE ROLE MarketingReaders


AUTHORIZATION dbo;
GO

GRANT SELECT ON SCHEMA::Marketing


TO MarketingReaders;
GO
Application de rôles dans des scénarios courants
• Scénario classique
• Définir les utilisateurs dbo et d'autres rôles administratifs
• Définir des groupes d'autorisations dans la base de données
• Utiliser le rôle public pour les autorisations communes
• Créer des rôles et leur attribuer des autorisations
• Ajouter des utilisateurs aux rôles
• Pour une prise de décision inscrite dans le code
• IS_SRVROLEMEMBER, IS_MEMBER

IF IS_MEMBER('BankManagers') = 0
BEGIN
PRINT 'Operation is only for bank manager use';
ROLLBACK;
END;
Démonstration 3A : Utilisation des rôles de base
de données définis par l'utilisateur
Dans cette démonstration, vous allez apprendre à 
• Créer un rôle de base de données défini par l'utilisateur
à l'aide de l'interface utilisateur graphique 
• Créer un rôle de base de données défini par l'utilisateur
avec T-SQL 
• Afficher les rôles de base de données disponibles avec T-
SQL
Définition des rôles d'application

L'utilisateur exécute
L'application s'authentifie
une application L'application se connecte
à l'aide de sp_setapprole
à la base de données
en tant qu'utilisateur
L'application adopte
le rôle de l'application

Les rôles d'application sont utilisés pour activer les


autorisations pour les utilisateurs uniquement lorsqu'ils
exécutent des applications spécifiques
Démonstration 3B : Utilisation des rôles d'application
Dans cette démonstration, vous allez apprendre à 
• Créer un rôle d'application 
• Transformer le contexte de sécurité en rôle d'application
Atelier pratique 10 : Attribution de rôles de serveur
et de base de données
• Exercice 1 : Attribuer des rôles serveur
• Exercice 2 : Attribuer des rôles de base de données fixes
• Exercice 3 : Créer et attribuer des rôles de base de données
définis par l'utilisateur
• Exercice difficile 4 : Vérifier les attributions de rôles
(si le temps le permet)

Informations d'ouverture de session


Ordinateur virtuel 22462A-MIA-SQL1
Nom d'utilisateur AdventureWorks\Administrateur
Mot de passe Pa$$w0rd

Durée approximative : 45 minutes


Scénario de l'atelier pratique
Vous avez créé les connexions et les utilisateurs de base
de données SQL Server. Vous devez maintenant attribuer
les connexions et les utilisateurs aux rôles requis en fonction
de la configuration de sécurité requise pour la base de données
MarketDev. Vous devez affecter le niveau d'accès minimal qui
permet à chaque utilisateur d'effectuer son travail. Cela requiert
une combinaison de rôles serveur, de rôles de base de données
fixes et de rôles de base de données définis par l'utilisateur
Ne vous préoccupez pas des autorisations d'objet et de schéma
car elles seront attribuées dans le module 11. Toutefois, vous
devrez tenir compte des configurations de rôle requises à ce
moment
Remarque : Les modifications que vous apportez sont migrées
par la suite vers l'environnement de production. Vous devez
utiliser les commandes T-SQL pour implémenter les
modifications nécessaires
Contrôle des acquis de l'atelier pratique
• Quel est le plus gros défi à relever lorsque vous affectez
des autorisations aux utilisateurs ?
• Pourquoi les utilisateurs reçoivent-ils généralement
un nombre d'autorisations qui dépassent leurs besoins
lorsqu'ils doivent effectuer leur travail ?
Contrôle des acquis et éléments à retenir
• Questions de contrôle des acquis
• Meilleures pratiques

Vous aimerez peut-être aussi