postgresql - privilège d'utilisateur pour un particulier de base de données
La Version De PostgreSQL 9.1,
je suis de l'enregistrement dans la base de données avec l'utilisateur par défaut: "postgres" et ma base de données contient rôle par défaut "public"
liste de base de données que j'ai,
1.database1
2.base de données2
3.database3
maintenant, j'ai besoin de créer un utilisateur "newuser" qui n'ont que la privilège de "base de données2", il ne devrait pas vous connecter à d'autres bases de données.
j'ai essayé d'utiliser cette syntaxe
create role newuser with login nosuperuser nocreatedb nocreaterole noinherit password 'newpassword';
revoke all privileges on database database1, database3 from newuser;
mais encore le "newuser" peut se connecter à une autre base de données(database 1/database3) et il peut sélectionner les tables à partir d'autres du schéma. (les tables dans le schéma public n'est pas répertorié)
s'il vous plaît, quelqu'un m'expliquer la procédure à suivre pour créer un utilisateur et d'accorder des privilèges à eux.
j'ai besoin d'un utilisateur qui peut avoir tous les privilèges sur une base de données particulière seulement, il ne devrait pas connecter à une autre base de données 🙂
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de révoquer le privilège de se connecter à une base de données? Cela devrait interdire toute autre opération sur la base de données.
Après un peu de creuser, il est devenu évident, pourquoi le ci-dessus ne fonctionnait pas. Peut-être l'unnswer par Tom Lane vous donnera une meilleure solution.
Vous pouvez supprimer les privilèges des utilisateurs sur la base de données en cours d'exécution.
REVOKE ALL PRIVILEGES ON DATABASE "database_name" from username;
Par défaut, tous les
public
scemas seront disponibles pour des (non-super-utilisateur) utilisateurs. Pour éviter ce connecter en tant que super-utilisateur et numéro de commande:Bien la façon dont je le fais toujours c'est via le
pg_hba.conf
, bien que je soupçonne qu'il doit être possible de la manière que vous essayez d'en faire autant.On pourrait s'attendre à révoquer tous les privilèges de nier quoi que ce soit avec les entités cotées en bourse. Donc pas de connexions laisser seul en fait la sélection. Il pourrait être quelque chose d'évident qu'on oublie ici.
De toute façon, ce devrait être facile à résoudre à l'aide du fichier de configuration. Ajouter le
newuser
et uniquement de la liste de la base de données que vous souhaitez pour permettre là. Il sera en fait refuser toute connexion de l'utilisateur à toute autre base de données. Évidemment, en outre, de la configuration des privilèges que vous avez déjà.