Commandes d'autorisation de base de données PostgreSQL

  J'utilise habituellement des bases de données et j'ai rarement des opérations autorisées, mais récemment, il y a eu une scène où il était nécessaire de définir quelles bases de données, tables et séquences ne pouvaient être exploitées que par un certain utilisateur. Laissez-moi partager mon expérience, j'utilise la base de données PostgreSQL.

Syntaxe des commandes d'autonomisation

Les commandes d'octroi dans PostgreSQL sont GRANT et REVOKE.

La commande GRANT est utilisée pour accorder certaines autorisations (telles que SELECT, INSERT, UPDATE, DELETE, etc.) à un certain utilisateur ou groupe d'utilisateurs sur un objet (tel que des tables, des vues, des fonctions, etc.).

grammaire:

GRANT privilege [, ...] ON object TO {user | group | PUBLIC} [, ...] [WITH GRANT OPTION];

Parmi eux, le privilège est une sorte d'autorisation, l'objet est un objet, qui peut être une table, une vue, une fonction, etc., l'utilisateur ou le groupe est l'utilisateur ou le groupe d'utilisateurs auquel l'autorisation est accordée, et PUBLIC désigne tous les utilisateurs.

Par exemple, l'utilisateur autorisé zhangsan effectue les opérations SELECT et INSERT sur le test de table :

GRANT SELECT, INSERT ON test TO zhangsan;

La commande REVOKE permet de révoquer certaines autorisations d'un utilisateur ou d'un groupe d'utilisateurs sur un objet.

grammaire:

REVOKE privilege [, ...] ON object FROM {user | group | PUBLIC} [, ...] [CASCADE | RESTRICT];

Parmi eux, les significations de privilège, objet, utilisateur ou groupe et PUBLIC sont les mêmes que celles de la commande GRANT.

Par exemple, annulez l'autorisation SELECT de l'utilisateur zhangsan lors du test de la table :

REVOKE SELECT ON test FROM zhangsan;

Il convient de noter que seuls les superutilisateurs ont le pouvoir d'accorder et de révoquer des autorisations. 

combat

voir tous les utilisateurs

SELECT * FROM pg_user;

Créer un utilisateur et définir un mot de passe

CRÉER UN UTILISATEUR zhangsan AVEC LE MOT DE PASSE '123456' ;

supprimer des utilisateurs 

SUPPRIMER L'UTILISATEUR zhangsan ;

créer une base de données

Test CRÉER UNE BASE DE DONNÉES ;

supprimer la base de données

SUPPRIMER LA BASE DE DONNÉES SI EXISTE le test ;

Supprimer les privilèges de l'utilisateur sur la base de données "test" 

RÉVOQUEZ TOUS les privilèges SUR LE "test" DE LA BASE DE DONNÉES DE Zhangsan ;

Donner à l'utilisateur la permission d'exploiter la base de données "test" 

ACCORDER LA CONNEXION, CRÉER, TEMPORAIREMENT SUR LA BASE DE DONNÉES "test" À zhangsan ;

Donner à l'utilisateur l'autorisation d'exploiter les tables de la base de données "test" 

GRANT SELECT, INSERT, UPDATE, DELETE
SUR TOUTES LES TABLES DU SCHÉMA PUBLIC
À zhangsan ;

Accorde à l'utilisateur le privilège d'opérer sur les séquences de la base de données "test"

Définitions d'autorisations pour les séquences

On peut voir dans le document officiel que toutes les autorisations de la séquence sont rwU, correspondant respectivement à SELECT, UPDATE, USAGE ;

Pour les séquences, le privilège SELECT permet d'utiliser la fonction currval

Pour les séquences, le privilège UPDATE permet d'utiliser les fonctions nextval et setval

Pour les séquences, le privilège USAGE permet d'utiliser les fonctions currval et nextval

Si vous devez avoir l'autorisation pour modifier la séquence, vous pouvez directement accorder TOUT, comme suit 

GRANT SELECT, UPDATE, UTILISATION SUR TOUTES LES SÉQUENCES DU SCHÉMA PUBLIC À Zhangsan ;

Si vous utilisez simplement la séquence et n'avez pas besoin de la modifier, vous pouvez autoriser USAGE

AUTORISER L'UTILISATION DE TOUTES LES SÉQUENCES DU SCHÉMA PUBLIC À Zhangsan ; 

Je suppose que tu aimes

Origine blog.csdn.net/Eighteen_y/article/details/130742810
conseillé
Classement