> Tech > Définir les autorisations de comptes

Définir les autorisations de comptes

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Tout comme vous avez créé un script pour la commande CREATE DATABASE, vous allez utiliser un script pour définir les nouvelles autorisations de comptes. Il faut exécuter en dernier ce script généré, parce qu'une base de données, les objets qui la constituent, et les comptes utilisateur, doivent exister avant que

Définir les autorisations de comptes

SQL Server ne puisse accorder des autorisations.
Le listing 3 montre un exemple
de code dans lequel la commande
GRANT octroie l’accès à  une procédure
cataloguée et à  une table. Les paramètres
de base de cette commande varient
selon le type d’objet. Pour des
tables ou des vues, on peut attribuer une
combinaison d’autorisations SELECT, UPDATE et DELETE, tandis que la seule
autorisation que l’on peut octroyer pour
des procédures cataloguées est EXECUTE.
La commande GRANT octroie
l’autorisation à  un utilisateur (NT ou
SQL Server, par exemple), un rôle ou un
groupe, et permet l’attribution de certaines
autorisations administratives
comme BACKUP DATABASE. Toutefois,
il serait plus judicieux d’octroyer les autorisations
administratives plus tôt, dans
la phase de création de la base de données.
Dans cet exemple, je me contente
d’octroyer des autorisations à  des objets
de base de données.

A propos de la commande GRANT, il
faut également noter que, par souci de
simplicité du scripting, la commande
n’octroie une autorisation qu’à  un objet
à  la fois. Par conséquent, chaque table,
vue, ou procédure cataloguée à  laquelle
on veut octroyer l’accès, doit avoir sa
propre commande. Dans le cas d’une
grande base de données, il serait difficile
de scripter une commande GRANT pour
chaque table, vue, et procédure cataloguée.
C’est pourquoi le listing 4 utilise
une suite de boucles et un tableau de
noms d’objets pour générer les commandes
T-SQL appropriées.

Près du début du listing 4, le code
définit des variables en listes délimitées par virgules de noms de tables et de procédures
cataloguées. Au lieu de générer
des listes statiques, qui demandent des
mises à  jour manuelles, le code VBScript
pourrait générer les noms d’objets pendant
l’installation en examinant dynamiquement
les fichiers T-SQL de tables et
de procédures cataloguées. Par ailleurs,
la liste de noms délimitée par virgules
peut aussi fournir de la souplesse quand
il faut attribuer des niveaux d’autorisations
multiples à  des éléments dans le
même fichier T-SQL.

Voyons maintenant comment on peut manipuler des listes de noms délimitées
par virgules. La commande
VBScript Split() est une méthode standard
pour prendre une chaîne délimitée
et créer automatiquement un tableau
contenant un de chaque élément présent
dans la chaîne. Le code VBScript
utilise ensuite les tableaux générés pour
créer les scripts SQL qui octroient les autorisations
utilisateur. Comme le montre
le listing 4, le script divise une liste de
noms. Ensuite, dans une boucle For
simple, le script écrit les lignes nécessaires
pour mettre en oeuvre la commande
GRANT sur le fichier script SQL.
Le script traite chaque chaîne des noms
de tables ou de procédures cataloguées
d’une série. Parce qu’il connaît les autorisations
et le type de chaque groupe
d’objets, le script peut utiliser différents
paramètres pour différentes tables.
Quand le script du listing 4 a été exécuté,
l’installation est finie en scriptant
des instructions pour créer des objets et
des autorisations.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010