createdb: création de base de données a échoué: ERREUR: permission denied pour créer la base de données
Je suis à peu près confus au sujet de utilisateur root,super utilisateur,utilisateur et autorisations! Je ne suis pas en mesure de créer une base de données à l'intérieur d'utilisateur "athleticu". Voici les commandes que j'ai utilisé:-
athleticu@ip-172-30-4-103:/home/ubuntu$ createdb -T template0 simple_db1
createdb: database creation failed: ERROR: permission denied to create database
athleticu@ip-172-30-4-103:/home/ubuntu$ sudo createdb -T template0 simple_db1
sudo: unable to resolve host ip-172-30-4-103
createdb: could not connect to database template1: FATAL: role "root" does not exist
Veuillez quelqu'un d'éclaircir mes doutes et me dire que dois-je écrire!
Êtes-vous sûr que c'est la bonne Adresse pour le serveur: "impossible de résoudre accueillir jusqu'-172-30-4-103"?
Vous devez vous connecter à l'aide de la super-utilisateur postgres. Généralement c'est
En fait je suis à la connexion à une instance de machine à l'aide d'AWS:-
Voulez-vous dire je dois d'abord vous connecter à
Essayez cette Solution a fonctionné pour moi
Vous devez vous connecter à l'aide de la super-utilisateur postgres. Généralement c'est
postgres
. Essayez createdb -U postgres ....
En fait je suis à la connexion à une instance de machine à l'aide d'AWS:-
sudo ssh -i "athleticu-test-keypair.pem" [email protected]
et puis c'est obtenir comme ceci : ubuntu@ip-172-30-4-103:~$
@patrickVoulez-vous dire je dois d'abord vous connecter à
postgres
de l'utilisateur, puis je devez vous connecter à athleticu
? @a_horse_with_no_nameEssayez cette Solution a fonctionné pour moi
OriginalL'auteur SonamGupta | 2017-05-02
Vous devez vous connecter pour publier un commentaire.
Hey j'ai déjà réglé ce problème. Ce que vous avez à faire est de première connexion en tant qu'utilisateur postgres comme suit:
Espère que cela vous aide 🙂
OriginalL'auteur SonamGupta
Type
\du
dans psql et vous verrez une liste de tous les utilisateurs enregistrés et quel type de privilèges de chacun.Pour accorder des privilèges à l'utilisateur qui est connecté (par exemple 'user1'), j'ai dû déconnecter et vous connecter en utilisant l'un des rôles de super-utilisateur dans la liste (par exemple,. 'user2'), à l'aide de la commande suivante:
où "base de données2' est le nom de celui qui spécifique superuser 'user2' a des privilèges.
Une fois que vous êtes connecté en tant que super-utilisateur, vous pouvez accorder des privilèges à 'user1' par:
ou
Puis connectez-vous de nouveau que user1, qui est maintenant un super-utilisateur.
Ce blog a été utile, ainsi que de ce lien.
OriginalL'auteur polyccon
La utilisateur root est un compte sur le système indépendant de Postgres. Il n'y a qu'une seule racine de l'utilisateur.
Un superuser est un compte Postgres avec accès à tout. Il peut y avoir beaucoup de les superutilisateurs.
Système de comptes et Postgres comptes sont des choses différentes, même si, sauf si vous spécifiez un nom d'utilisateur Postgres lorsque vous vous connectez à la base de données (via des utilitaires comme
psql
,createdb
,dropdb
, ou autre), il utilisera le système actuel nom de l'utilisateur dans l'espoir qu'il existe un correspondant Postgres compte avec le même nom. Le utilisateur root n'a pas, par défaut, un compte correspondant dans Postgres.Lorsque vous installer Postgres sur *nix, il crée à la fois un superuser nommé
postgres
et un système de nom d'utilisateurpostgres
.Par conséquent, lorsque vous avez besoin de faire quelque chose avec Postgres comme le haut-super-utilisateur, vous avez deux options:
sudo su - postgres
pour devenir lepostgres
de l'utilisateur du système et l'exécution de votre commande (createdb
,psql
, etc). Parce que le système de l'utilisateur a le même nom que la base de données super-utilisateur, votre commande va se connecter en tant que le compte approprié.-U
de l'interrupteur, par exemple,psql -U postgres ...
.En fonction de votre serveur Postgres de paramètres d'authentification, vous pouvez être invité à entrer un mot de passe avec l'une ou les deux méthodes de connexion.
When you install Postgres on *nix
- ce qu'on entend par*nix
dans votre commentaire? cela ne signifie Unix/Linux ? et sur l'utilisation de postgres sur ubuntu? Merci de préciser un peu plus! @dmfay*nix fait référence à tout système d'exploitation dérivé de, ou liés à Unix, y compris les différentes distributions Linux (dont Ubuntu), le Bsd et Mac OS X.
OriginalL'auteur dmfay
Ce que vous pouvez faire lorsque vous avez une nouvelle installation de PostgreSQL est de créer votre utilisateur avec certains droits (voir createuser documentation):
Cela permettra
my-user
pour créer DBs comme:Si vous voulez le
my-user
pour être en mesure de faire quoi que ce soit simplement utiliser le--superuser
drapeau à la place:OriginalL'auteur nyxz