Leçon 2 : Configurer des autorisations sur des objets de base de données
S’applique à : Base de données SQL Azure SQL Database Azure SQL Managed Instance Analytics System (PDW) SQL Database dans Microsoft Fabric
Remarque
Le parcours d’apprentissageDémarrage par l’interrogation avec Transact-SQL fournit un contenu plus détaillé, ainsi que des exemples pratiques.
L'octroi à un utilisateur de l'accès à une base de données implique trois étapes. Commencez par créer une connexion. La connexion permet à l’utilisateur de se connecter au Moteur de base de données SQL Server. Puis, configurez la connexion en tant qu'utilisateur dans la base de données spécifiée. Enfin, accordez à cet utilisateur l'autorisation sur les objets de base de données. Cette leçon illustre ces trois étapes et vous montre comment créer une vue et une procédure stockée comme objet.
Notes
Cette leçon repose sur les objets créés dans Leçon 1 - Créer des objets de base de données. Suivez la leçon 1 avant de passer à la leçon 2.
Prérequis
Pour suivre ce tutoriel, vous avez besoin de SQL Server Management Studio et d’un accès à une instance SQL Server.
- Installez SQL Server Management Studio.
Si vous n’avez pas accès à une instance SQL Server, sélectionnez votre plateforme parmi les liens suivants. Si vous choisissez l’authentification SQL, utilisez vos informations d’identification de connexion SQL Server.
- Windows : télécharger l’Édition Développeurs SQL Server 2022.
- Linux : télécharger SQL Server 2022 dans un conteneur.
Nous sommes à votre écoute : Si vous trouvez des informations obsolètes ou incorrectes dans cet article, par exemple une étape ou une erreur dans un code, n’hésitez pas à nous en faire part. Vous pouvez cliquer sur le bouton Cette page dans la section Commentaires au bas de cette page. Nous lisons chaque commentaire concernant SQL, généralement le jour suivant. Nous vous remercions.
Créer un compte de connexion
Pour accéder au Moteur de base de données, les utilisateurs ont besoin d’une connexion. Cette connexion peut représenter l’identité de l’utilisateur sous forme d’un compte Windows ou d’un membre d’un groupe Windows, ou la connexion peut être une connexion SQL Server qui existe uniquement dans SQL Server. Chaque fois que vous en avez la possibilité, utilisez l’authentification Windows.
Par défaut, les administrateurs de votre ordinateur ont un accès complet à SQL Server. Dans le cadre de cette leçon, l'utilisateur a moins de privilèges ; par conséquent, vous allez créer un nouveau compte d'authentification Windows local sur votre ordinateur. Pour ce faire, vous devez être administrateur de votre ordinateur. Puis vous allez octroyer à ce nouvel utilisateur l'accès à SQL Server.
Créer un nouveau compte Windows
- Sélectionnez Démarrer, Exécuter, dans la zone Ouvrir, tapez
%SystemRoot%\system32\compmgmt.msc /s
, puis sélectionnez OK pour ouvrir le programme de gestion de l’ordinateur. - Sous Outils système, développez Utilisateurs et groupes locaux, cliquez avec le bouton droit sur Utilisateurs, puis sélectionnez Nouvel utilisateur.
- Dans la zone Nom d’utilisateur , tapez Mary.
- Dans les zones Mot de passe et Confirmer le mot de passe, tapez un mot de passe fort, puis sélectionnez Créer pour créer un utilisateur Windows local.
Créer un compte de connexion SQL
Dans une fenêtre de l'Éditeur de requête SQL Server Management Studio, tapez et exécutez le code suivant en remplaçant computer_name
par le nom de votre ordinateur. FROM WINDOWS
indique que Windows authentifie l’utilisateur. L'argument DEFAULT_DATABASE
facultatif connecte Mary
à la base de données TestData
, sauf si sa chaîne de connexion indique une autre base de données. Cette instruction introduit le point-virgule comme arrêt facultatif pour une instruction Transact-SQL .
CREATE LOGIN [computer_name\Mary]
FROM WINDOWS
WITH DEFAULT_DATABASE = [TestData];
GO
Cela autorise un nom d'utilisateur, Mary
, authentifié par votre ordinateur, d'accéder à cette instance de SQL Server. Si votre ordinateur a plus d’une instance de SQL Server , vous devez créer la connexion sur chaque instance à laquelle Mary
doit accéder.
Notes
Étant donné que Mary
n'est pas un compte de domaine, ce nom d'utilisateur ne peut être authentifié que sur cet ordinateur.
Accorder l’accès à une base de données
Le compte Mary
a désormais accès à cette instance de SQL Server, mais il n’est pas autorisé à accéder aux bases de données. Le compte ne peut pas non plus accéder à sa base de données par défaut TestData
tant que vous ne l’autorisez pas en tant qu’utilisateur de base de données.
Pour octroyer l'accès à Mary
, basculez vers la base de données TestData
et, à l'aide de l'instruction CREATE USER, mappez la connexion à un utilisateur appelé Mary
.
Créer un utilisateur dans une base de données
Tapez et exécutez les instructions suivantes ( computer_name
est remplacé par le nom de votre ordinateur) pour octroyer à Mary
l'accès à la base de données TestData
.
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
Mary a désormais accès à SQL Server et à la base de données TestData
.
Créer des vues et des procédures stockées
En tant qu’administrateur, vous pouvez exécuter l’instruction SELECT à partir de la table Products
et de la vue vw_Names
, et exécuter la procédure pr_Names
. Toutefois, Mary ne peut pas le faire. Pour lui octroyer les autorisations nécessaires, utilisez l'instruction GRANT.
Accorder une autorisation à la procédure stockée
Exécutez l'instruction suivante pour donner à Mary
l'autorisation EXECUTE
pour la procédure stockée pr_Names
.
GRANT EXECUTE ON pr_Names TO Mary;
GO
Dans ce scénario, Mary peut accéder uniquement à la table Products
à l'aide de la procédure stockée. Pour que Mary puisse exécuter une instruction SELECT sur la vue, vous devez exécuter aussi GRANT SELECT ON vw_Names TO Mary
. Pour supprimer l'accès aux objets de base de données, utilisez l'instruction REVOKE.
Notes
Si la table, la vue et la procédure stockée n'appartiennent pas au même schéma, l'octroi des autorisations devient plus complexe.
À propos de GRANT
Vous devez avoir l'autorisation EXECUTE pour exécuter une procédure stockée. Vous devez avoir les autorisations SELECT, INSERT, UPDATE, et DELETE pour accéder et modifier des données. L'instruction GRANT sert également à d'autres autorisations, telles que les autorisations de créer des tables.
Étapes suivantes
L’article suivant vous apprend à supprimer des objets de base de données que vous avez créés dans les autres leçons.
Passez à l’article suivant pour en savoir plus :