SUBVENTION SQL Server

Subvention Sql Server



Dans cet article, vous comprendrez comment utiliser l'instruction GRANT dans SQL Server pour accorder des autorisations sur un élément sécurisable à un principal.

SQL Server sécurisable et principal

Un élément sécurisable fait référence aux ressources auxquelles le système d'autorisation du moteur de base de données SQL Server contrôle l'accès. Un exemple serait une table de base de données.

Un principal fait référence à toute entité qui nécessite l'accès à une ressource SQL Server. Par exemple, un utilisateur demandant des autorisations sur une table est un principal.







Déclaration d'octroi de SQL Server

Voici la syntaxe de la commande GRANT dans SQL Server :



Autorisations GRANT
ON sécurisable TO principal ;

Vous devez spécifier l'autorisation que vous souhaitez attribuer au mandant sous forme de liste séparée par des virgules.



Le mot-clé ON permet de spécifier le sécurisable sur lequel s'appliquent les permissions. Enfin, le mot-clé TO vous permet de définir le principal cible.





Par exemple, la création d'un utilisateur à l'aide de l'instruction CREATE USER ne définit pas les autorisations pour cet utilisateur. Il est donc essentiel d'utiliser l'instruction GRANT pour définir les autorisations de cet utilisateur.

Prenons un exemple.



Créer un exemple de connexion

Commençons par créer un exemple de connexion à des fins d'illustration. La requête est telle que fournie ci-dessous :

créer une connexion linuxhint
avec mot de passe='mot de passe' ;

La commande ci-dessus doit créer un utilisateur avec le nom d'utilisateur linuxhint et le mot de passe spécifié.

Créer un exemple de base de données

Nous pouvons créer une base de données où résidera l'utilisateur une fois que nous aurons défini un identifiant. Les requêtes sont comme indiqué :

supprimer la base de données s'il existe un résolveur ;

créer un résolveur de base de données ;

utiliser un résolveur ;

supprimer la table s'il existe des entrées ;

créer des entrées de table(
id int not null identity(1,
1) clé primaire,
nom_serveur varchar(50),
adresse_serveur varchar(255) non nul,
compression_method varchar(100) par défaut 'aucun',
size_on_disk flottant non nul,
size_compressed float,
total_records entier non nul,
init_date date
);
insérer
dans
ENTRIES(nom_serveur,
adresse du serveur,
méthode de compression,
taille sur le disque,
size_compressed,
total_records,
init_date)
valeurs
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Créer un utilisateur pour la connexion

Une fois que nous avons créé la base de données et la table, nous pouvons créer un utilisateur pour la connexion linuxhint en tant que :

utiliser le résolveur
créer un utilisateur linuxhint
pour la connexion linuxhint ;

Connectez-vous en tant que nouvel utilisateur

Ensuite, connectons-nous en tant qu'utilisateur nouvellement créé. La commande est comme indiqué :

setuser 'linuxhint';

Une fois connecté, nous pouvons tenter de visualiser les tables en exécutant la commande select :

sélectionnez * parmi les entrées ;

L'exécution de la requête ci-dessus devrait renvoyer une erreur :

Msg 229, niveau 14, état 5, ligne 379
L'autorisation SELECT a été refusée sur l'objet 'entries', la base de données 'resolver', le schéma 'dbo'.

C'est parce que l'utilisateur linuxhint n'a aucune autorisation sur la base de données, y compris les autorisations SELECT.

Accorder l'autorisation à l'utilisateur

Nous devons accorder les autorisations SELECT pour permettre à l'utilisateur d'afficher les informations stockées dans les tables.

Pour cela, vous devez vous connecter avec le compte administratif SQL Server.

Ensuite, exécutez la requête en tant que :

accorder select sur les entrées à linuxhint ;

Une fois exécuté, connectez-vous en tant qu'utilisateur linuxhint et utilisez l'instruction SELECT.

sélectionnez * parmi les entrées ;

Dans ce cas, la commande renvoie la table car l'utilisateur dispose des autorisations SELECT

Vous pouvez également attribuer d'autres autorisations à l'utilisateur, comme insérer et supprimer en tant que :

accorder l'insertion, supprimer les entrées de linuxhint ;

dans ce cas, l'utilisateur linuxhint doit avoir les permissions SELECT, INSERT et DELETE sur la table des entrées.

Conclusion

Dans cet article, nous avons exploré l'utilisation de la commande GRANT dans SQL Server. La commande vous permet d'attribuer des autorisations à un principal donné.