Exemples de sécurité du niveau de ligne postgresql

Exemples de sécurité du niveau de ligne postgresql

Postgresql a été un système de base de données largement utilisé à travers le monde et est très sécurisé. Postgresql est venu avec les deux types de titres, e.g. au niveau de la colonne et au niveau des lignes. Notre sujet principal est la sécurité au niveau des lignes dans PostgreSQL. La sécurité au niveau des lignes serait un outil simple et indispensable dans la sécurité de PostgreSQL. Il a été utilisé pour contrôler l'accès des utilisateurs à certaines tables et enregistrements en fonction de certaines politiques. En appliquant une sécurité au niveau des lignes, nous limiterons les utilisateurs à afficher ou à manipuler les enregistrements de table contenant les données les concernant au lieu d'apporter des modifications aux enregistrements d'autres utilisateurs.

Vous devez ouvrir le shell SQL pour PostgreSQL 13 à partir de la barre de départ de Windows 10. Après l'avoir ouvert, vous obtiendrez l'écran noir de la coque SQL. Ajoutez le nom du serveur, le nom de la base de données, le numéro de port, le nom d'utilisateur et le mot de passe lorsqu'on lui demande un par un. Le shell SQL sera prêt pour votre usage supplémentaire.

L'utilisateur de la base de données "Postgres"Est déjà un superutilisateur de votre système. Si vous n'êtes pas connecté à partir d'un superutilisateur, vous devez vous connecter à partir de celui-ci. La méthode pour se connecter à partir d'un compte SuperUser consiste en utilisant la commande indiquée ci-dessous dans le shell ayant un signe «\ c» avec le nom d'une base de données à utiliser, E.g. Postgres, ainsi que le nom d'un superutilisateur, e.g. Postgres. Il peut nécessiter le mot de passe d'un compte s'il n'est pas déjà connecté.

Créer un tableau:

Vous devez créer une nouvelle table dans le superutilisateur et la base de données «Postgres». Donc, nous avons utilisé le Créer une table requête pour créer une table "test”Avec certaines colonnes comme indiqué.

Après avoir créé une table "test», Nous avons inséré trois enregistrements pour 3 utilisateurs différents, E.g. Aqsa, Raza et Rimsha, via le «INSÉRER DANS»Instruction dans le shell.

Le tableau et ses enregistrements peuvent être vus sur l'écran de shell SQL à l'aide du SÉLECTIONNER mettre en doute.

Créer des utilisateurs:

Nous avons travaillé dans SQL Shell sur le test de table avec le superutilisateur "Postgres», Mais nous devons créer d'autres utilisateurs comme mentionné dans le tableau, e.g. aqsa, raza et rimsha. Donc, nous avons utilisé le CRÉER UN UTILISATEUR commander pour le faire tout en attribuant le mot de passe. Après cela, nous avons accordé SÉLECTIONNER privilèges sur tous ces utilisateurs après la création.

Lorsque nous avons utilisé les utilisateurs nouvellement créés pour récupérer les enregistrements d'un tableau "test», La sortie montre qu'un utilisateur peut facilement accéder à toutes les lignes à partir d'une table au lieu d'une ligne ayant son nom. La sortie ci-dessous montre la sortie pour accéder au test de table avec un utilisateur «AQSA».

La sortie en dessous montre la sortie pour accéder au test de table avec un utilisateur "Raza".

La sortie ci-dessous est pour un test de table avec un utilisateur "rimsha".

Créer une politique:

Le but de la sécurité au niveau des lignes est de restreindre les utilisateurs uniquement pour récupérer les enregistrements ayant les informations concernant elles-mêmes. Nous souhaitons une sécurité au niveau des lignes pour les utilisateurs de ne pas récupérer les enregistrements des autres utilisateurs. Commençons par nous connecter à partir du superutilisateur "Postgres”Dans la coque SQL.

Après la connexion, nous avons utilisé l'instruction de stratégie de création ci-dessous pour créer une stratégie nommée «nouveau" sur la table "test". Nous avons utilisé le «TOUS»Mot-clé ici représentant tous les privilèges, E.g. insérer, mettre à jour, modifier, etc. Vous pouvez le rendre particulier en ajoutant un insert, une sélection, une mise à jour ou un mot-clé. Le rôle public a indiqué tous les rôles. Vous pouvez également spécifier l'utilisateur ou le rôle ici. Nous avons utilisé le «EN UTILISANT»Expression ici. Cela comparera le nom d'utilisateur actuellement connecté avec la table «Tester» dans la colonne «Nom».

Activer la sécurité du niveau de ligne:

Créer uniquement la politique et être appliqué aux rôles et aux tables ne suffit pas pour obtenir un changement. Vous devez avoir pour activer la sécurité au niveau des lignes sur le «test» de la table qui a un ensemble de stratégie juste avant. Donc, nous avons utilisé le superutilisateur "Postgres"Pour activer la sécurité au niveau des lignes sur une table"test" avec le MODIFIER TABLE Commande montrée dans la capture d'écran attachée.

Comme nous nous sommes actuellement connectés au superutilisateur "Postgres", la commande "SÉLECTIONNER"Avec le mot-clé"utilisateur actuel»Affiche le nom d'utilisateur dans la sortie. Lors de l'accès à la table avec la commande SELECT tout en étant connectée à partir du superutilisateur, il affiche tous les enregistrements d'un tableau «test». Cela signifie que la politique et la sécurité au niveau des lignes n'affectent pas le superutilisateur.

Maintenant, nous nous connecterons à partir des nouveaux rôles créés il y a quelque temps. Nous nous sommes connectés de l'utilisateur "aqsa»Et vérifié l'utilisateur actuellement connecté. Il revient "aqsa«En tant qu'utilisateur actuel. En récupérant la table "test"Les enregistrements par une commande Select, il renvoie les lignes n'appartenant qu'au nom d'utilisateur"aqsa«Assormis à une colonne« nom »dans la table. Toutes les autres lignes ont été sécurisées et ne peuvent pas être consultées par un utilisateur "aqsa".

Connectons-nous de l'autre utilisateur, "Raza«Du terminal et vérifiez l'utilisateur actuel. Il est revenu "Raza«En tant qu'utilisateur actuel. La sortie de la commande select affiche uniquement l'enregistrement pour un utilisateur "Raza" de la table "test".

La sécurité au niveau des lignes a fonctionné de la même manière sur l'utilisateur "rimsha"Selon l'image de sortie ci-dessous.

Contourner la sécurité au niveau des lignes:

Les autorisations de contournement peuvent être utilisées pour annuler la sécurité au niveau des lignes par certains superutilisateurs et autres utilisateurs privilégiés. L'utilisateur ayant des privilèges de contournement de la sécurité au niveau des lignes peut annuler la sécurité au niveau des lignes pour n'importe quelle table et accéder également aux enregistrements des autres utilisateurs. Donc, nous nous sommes connectés à partir du compte SuperUser dans le terminal d'abord.

Après cela, nous avons modifié les droits d'un utilisateur "Raza”Par une commande alter user appliquée dessus. Nous avons attribué à l'utilisateur «Raza», les privilèges de contourner la sécurité au niveau des lignes par «bypassrls»Mentionné dans la requête utilisateur alter comme indiqué.

Connectez-vous depuis l'utilisateur "Raza«De la coquille. Vous pouvez voir que l'utilisateur «Raza» peut désormais dépasser la politique de sécurité au niveau des lignes et peut facilement voir et modifier les enregistrements de tous les autres utilisateurs du tableau «test"Via la requête sélectionnée.

Politique de suppression:

Connectons-nous à nouveau à partir du superutilisateur pour abandonner une politique "nouveau«Cela a été appliqué sur la table« Test ».

La commande de politique de dépôt a été utilisée dans le shell pour supprimer une politique nommée «nouveau«De la table« Test ».

Après avoir abandonné une politique, nous nous sommes connectés à l'un des utilisateurs pour vérifier si cela fonctionne toujours ou non. Nous avons constaté que dégoulinant une stratégie ne pouvait pas changer l'utilisateur "aqsa"Ou d'autres pour récupérer les enregistrements d'un tableau"test". C'est parce que nous n'avons pas encore désactivé la sécurité au niveau des lignes sur la table.

Désactiver la sécurité au niveau des lignes:

Pour désactiver la sécurité au niveau des lignes sur une table "test», Connectez-vous en tant que superutilisateur et utilisez la requête indiquée dans le snap ci-dessous.

Après la connexion de l'autre utilisateur, vous pourrez afficher et modifier facilement les enregistrements.

Conclusion:

Ce tutoriel contient une brève démonstration de la sécurité au niveau des lignes utilisées pour restreindre les utilisateurs à l'accès aux données à des fins de sécurité. La sécurité au niveau des lignes a été obtenue en créant des utilisateurs, des politiques et ensuite l'activation de la sécurité. L'article contient également la mise en œuvre concernant la suppression d'une politique et la désactivation de la sécurité au niveau des lignes. Par conséquent, cet article est un package bonus pour que nos utilisateurs puissent tout faire, de l'activation de désactiver la sécurité au niveau des lignes dans une seule prise.