-
Lors de la définition des autorisations, quel que soit l'utilisateur ou le rôle, ce sont les objets permettant de définir les autorisations. Sauf que les rôles d'application sont spéciaux et ont des relations mutuellement exclusives avec d'autres rôles et utilisateurs, les rôles de base de données et les membres ont une relation très étroite en termes d'autorisations. Un utilisateur peut appartenir à plusieurs rôles de base de données en même temps, et chaque rôle peut avoir des autorisations différentes. À l'heure actuelle, le principe permettant aux utilisateurs d'obtenir des autorisations réelles est "l'union", sauf s'il existe un paramètre de refus (interdit). Par exemple, le rôle A n'a pas le droit de lire la table de données B, mais le rôle C peut lire la table de données.
B, à ce moment, l'utilisateur qui appartient aux rôles A et C n'est toujours pas en mesure de lire la table de données B car il a été banni.
Les objets d'autorisations peuvent être divisés en serveurs et bases de données, c'est-à-dire que les autorisations peuvent être définies séparément pour ces deux-là, veuillez consulter l'explication suivante.
Spécifier les autorisations du serveur (1) Cliquez avec le bouton droit sur le serveur dans l'Explorateur d'objets et sélectionnez "Propriétés".
(2) Basculez vers « Autorisations » dans la boîte de dialogue.
(3) Sélectionnez l'objet pour lequel les autorisations doivent être définies dans « Nom de connexion ou rôle » et vérifiez l'autorisation respectivement dans « Autorisations explicites ».
Une fois terminé, cliquez sur le bouton « OK », comme illustré dans la figure 15-21.
Comme le montre la figure 15-21, il s'agit du paramètre d'autorisation pour le serveur. L'« autorisateur » est celui actuellement connecté à SQL Server
Le nom de connexion du serveur ; « Autorisations » sont les autorisations qui peuvent être définies par tous les noms de connexion actuels ; « Accorder » signifie accorder des autorisations ; si « Avoir Accorder » est coché, cela signifie que sa accorde des autorisations à l'objet sélectionné et peut puis accordez-les à d'autres connexions ; "Rejeter" C'est juste interdit de les utiliser.
La sélection de ces trois options est liée. Si « Refuser » est coché, « Accorder » et « Accorder » seront automatiquement effacés ; si « Avoir Accorder » est coché, « Rejeter » sera effacé et « Accorder » sera sélectionné. .
"Nom ou rôle de connexion" est l'objet pour lequel les autorisations sont définies. Les lecteurs peuvent cliquer sur le bouton "Ajouter" pour spécifier d'autres noms de connexion ou rôles. Cependant, tous les rôles de serveur intégrés ne peuvent pas modifier les autorisations, mais des autorisations peuvent être spécifiées pour le. rôle public.
Pour afficher les autorisations de la connexion ou du rôle actuellement sélectionné, cliquez sur le bouton Autorisations effectives, car les autorisations effectives peuvent non seulement être définies dans la Figure 15-21, mais dépendent également du rôle auquel appartient la connexion. Par conséquent, la Figure 15-21 affichera uniquement les autorisations définies dans ce paramètre et les autorisations existantes par défaut ne seront pas affichées.
Figure 15-21 Définir les autorisations du serveur et spécifier les autorisations de la base de données (1) Sélectionnez la base de données eBook dans l'Explorateur d'objets, cliquez avec le bouton droit et sélectionnez "Propriétés".
(2) Basculez vers « Autorisations » dans la boîte de dialogue.
(3) Sélectionnez l'objet pour lequel les autorisations doivent être définies dans « Utilisateur ou rôle », vérifiez les autorisations dans « Autorisations explicites » et cliquez sur le bouton « OK » une fois terminé, comme indiqué dans la figure 15-22.
Autorisations d'objet (1) Sélectionnez la base de données eBook dans l'explorateur d'objets, ouvrez la « Table de données », sélectionnez la table de données « Commandes », cliquez avec le bouton droit et sélectionnez « Propriétés ».
(2) Basculez vers « Autorisations » dans la boîte de dialogue.
(3) Cliquez sur le bouton "Ajouter", puis spécifiez l'utilisateur, le rôle de base de données ou le rôle d'application dont vous souhaitez modifier les autorisations dans la boîte de dialogue.
(4) Sélectionnez l'objet pour lequel les autorisations doivent être définies dans « Utilisateur ou rôle », vérifiez les autorisations dans « Autorisations explicites » et cliquez sur le bouton « OK » une fois terminé, comme indiqué dans la figure 15-23.
Les méthodes de fonctionnement de la Figure 15-21 et de la Figure 15-23 sont exactement les mêmes. La différence est que les autorisations du serveur, de la base de données et des objets sont définies séparément et que les objets pouvant être définis sont également différents. Dans la Figure 15-21, les autorisations peuvent être spécifiées pour le nom de connexion et le rôle du serveur. Dans la Figure 15-22.
Dans la figure 15-23, les autorisations peuvent être spécifiées pour les utilisateurs, les rôles de base de données et les rôles d'application ; une autre différence est que les autorisations qui peuvent être spécifiées sont différentes.
Figure 15-22 Définition des autorisations de base de données
Figure 15-23 Définition des autorisations et autorisations d'objet
Les autorisations qui peuvent être définies dans SQL Server sont très complexes. Il existe 94 autorisations du serveur sur l'objet. Ce qui est plus difficile à comprendre, ce sont les propriétés du serveur et de la base de données. Les éléments importants sont présentés dans le tableau 15-4.
Tableau 15-4 Descriptions des autorisations importantes
Description du contenu de l'autorisation
CONTROL confère au bénéficiaire des capacités similaires à celles de la propriété. Le bénéficiaire a en effet un droit sûr à
Toutes les autorisations définies sur l'icône
ALTER Accorde la possibilité de modifier les propriétés (sauf la propriété) d'un objet sécurisable spécifique. dans une gamme spécifique
Lorsque l’autorisation ALTER est accordée à une étendue, elle est également accordée pour modifier, créer ou supprimer l’étendue.
Les capacités de tout objet de sécurité contenu
ALTER ANY <objet sécurisable par le serveur> Accorde la possibilité de créer, modifier ou supprimer des instances individuelles d'un objet sécurisable par le serveur.
ALTER ANY <objet sécurisé de base de données> Accorde CREATE, ALTER ou DROP à une instance individuelle d'un objet sécurisé de base de données.
capacité
TAKE OWNERSHIP permet au bénéficiaire de prendre possession de l'objet de sécurité accordé
CREATE <objet de sécurité du serveur> Accorde au bénéficiaire la possibilité de créer des objets de sécurité du serveur.
CREATE <objet de sécurité de base de données> Accorde au bénéficiaire la possibilité de créer des objets de sécurité de base de données.
VIEW DEFINITION permet au bénéficiaire d'accéder aux métadonnées
L'« objet de sécurité » dans le Tableau 15-4 fait référence à l'objet de l'opération de définition des autorisations, tel que « Rôle » dans « Créer un rôle ».
C'est l'objet sûr ici.
Utilisez T-SQL pour définir les autorisations. Pour définir les autorisations dans T-SQL, vous pouvez utiliser les trois instructions GRANT (accorder), DENY (refuser) et REVOKE (révoquer).
Ces trois déclarations ont de nombreuses utilisations et leurs formes de base sont les suivantes :
GRANT ALL ou nom d'autorisation ON objet TO nom d'utilisateur ou de rôle AVEC option
REVOKE ALL ou nom d'autorisation ON objet TO nom d'utilisateur ou de rôle CASCADE
DENY ALL ou nom d'autorisation ON objet TO nom d'utilisateur ou de rôle CASCADE
Chaque instruction comporte trois éléments, à savoir le nom de l'autorisation, l'objet et l'utilisateur (rôle), comme suit (Ch151524Grant.sql) :
UTILISER le livre électronique
GRANT SELECT ON OBJECT::dbo.members À David
RÉFÉRENCES DE SUBVENTION (MemberID) SUR OBJECT::dbo.Orders
À DAVID AVEC OPTION DE SUBVENTION
Les instructions ci-dessus utilisent respectivement l'instruction Grant pour accorder des autorisations à David, mais le contenu de l'objet est différent. Veuillez utiliser le nom de l'objet comme suit.
Commencez par « OBJECT :: », suivi du nom complet, de préférence suivi du propriétaire. La deuxième instruction Grant agit sur un objet spécial, "(MemberID) ON OBJECT:: dbo.Orders", qui représente le MemberID agissant sur l'objet Orders.
champ, accordez à David les autorisations d'affichage sur cette colonne. En même temps, ajouter « AVEC GRANT OPTION » signifie que David peut accorder cette autorisation à d'autres, ce qui équivaut à « avec subvention » dans la figure 15-23.
Dans les instructions Revoke et Deny, Cascade peut être ajouté à la fin. La fonction de ce mot-clé est de révoquer les autorisations que l'utilisateur peut accorder à d'autres après To, c'est-à-dire d'annuler « avoir accordé ».
Afficher les autorisations disponibles Comme il existe de nombreuses autorisations disponibles, il n'y a aucune option parmi laquelle choisir dans T-SQL, utilisez donc GRANT, DENY et
Lors de la RÉVOKE, vous devez d'abord connaître le nom de l'autorisation avant de pouvoir le définir. Les lecteurs peuvent voir sys.fn_builtin_permissions,
Les trois tables de données système sys.database_permissions et sys.server_permissions sont présentées dans la figure 15-24.
Figure 15-24 Afficher les autorisations disponibles. « Permission_name » dans la Figure 15-24 est le nom de l'autorisation disponible, qui peut être appliqué à Grant, DENY ou
Révoquer la déclaration.
Afficher le contenu des autorisations Pour afficher le nom de connexion actuel et le contenu des autorisations utilisateur, vous pouvez exécuter la procédure stockée sp_helprotect, comme illustré dans la figure 15-25.
montré.
Le bénéficiaire dans la figure 15-25 est le nom de l'utilisateur qui accorde les autorisations, et le concédant est le nom de l'utilisateur qui accorde les autorisations à d'autres.
Jusqu'à quatre paramètres peuvent être utilisés après la procédure stockée sp_helprotect, représentant le nom de l'objet, le nom de l'utilisateur et le nom du concédant. Le quatrième paramètre peut être o ou s, représentant respectivement les autorisations d'objet de requête ou les autorisations d'instruction.