[LINUX] À propos de la différence entre PostgreSQL su et sudo

introduction

Maintenant que je suis devenu ingénieur et que je suis entré en contact avec Linux et PostgreSQL, je garderai ce que j'ai appris pour mémoire. L'environnement est CentOS 7.2. Utilisez PostgreSQL.

utilisateur postgres et commande psql

Utilisez la commande psql pour travailler avec la base de données. La commande psql est une commande permettant de faire fonctionner le DB depuis le terminal. Cependant, tous les utilisateurs ne peuvent pas utiliser cette commande. (Cela semble possible si vous modifiez le paramètre.) Lors de l'utilisation de la base de données, basculez vers l'utilisateur postgres (ou basculez vers un utilisateur qui peut utiliser la commande psql) et exécutez la commande psqk au lieu de l'utilisateur root ou de l'utilisateur général pour faire fonctionner la base de données. Les commandes su et sudo sont utilisées lors du passage d'un utilisateur à l'autre.

À propos de la commande su

La commande su est un utilisateur de remplacement, un super utilisateur ou un utilisateur de commutateur. Je l'ai recherché, mais je ne savais pas ce que cela représentait. Cela signifie changer d'utilisateur.

su - postgres

Passage à l'utilisateur postgres.

Concernant la présence ou l'absence de traits d'union

Notez la présence ou l'absence de "-". S'il y a un "-", l'environnement sera initialisé comme si vous vous connectiez directement. Autrement dit, le répertoire courant sera le répertoire personnel du nouvel utilisateur et toutes les variables d'environnement seront initialisées. S'il n'y a pas de "-", l'environnement actuel est laissé tel quel et seul l'utilisateur est commuté. (Nakajima Yoshikazu "LinuC Textbook LinuC Level 1 Version 10.0 Compatible" p425)

Il paraît que.

su -
mot de passe:

Si vous omettez le nom d'utilisateur, vous serez basculé vers l'utilisateur root et vous serez invité à entrer un mot de passe.

su - postgres
#Changer d'utilisateur pour postgres
psql test
#Accédez au serveur de test avec la commande psql
¥d
#Vous pouvez répertorier les tables du serveur de test en utilisant la marque \ (ou la barre oblique inverse) d.
¥d table
#Vous pouvez également lister les colonnes de cette table en entrant le nom de la table après \ d.

Après être passé à l'utilisateur postgres avec la commande su, spécifiez le serveur cible avec la commande psql, Vous allez écrire des instructions SQL telles que SELECT. Si vous changez d'utilisateur, cela restera le même, vous pouvez donc revenir à l'utilisateur d'origine avec ctrl + d.

À propos de la commande sudo

Dans le cas de la commande sudo, vous pouvez écrire des instructions SQL sur une ligne à partir de sudo.

sudo -u postgres psql table -c "SELECT~";

Basculez l'utilisateur postgres de la commande sudo avec l'option u, spécifiez le DB appelé table à partir de la commande psql, et Puisque vous tapez la commande successivement, vous pouvez entrer l'instruction SQL en la plaçant dans l'option c et entre guillemets.

sudo -u postgres psql table -f /var/test.sql

De plus, si vous avez des instructions SQL dans un fichier, vous pouvez le faire en remplaçant l'option c par l'option f. Dans le cas ci-dessus, le fichier test.sql sous / var est en cours d'exécution.

Cependant, comme la commande sudo doit changer d'utilisateur à chaque fois et écrire des instructions SQL, Il peut être préférable de basculer une fois avec la commande su lors de l'écriture d'instructions SQL plusieurs fois.

Résumé

Décrit la différence entre su et sudo pour passer à l'utilisateur postgres. Je pense que c'est plus profond, mais j'apprendrai à partir de maintenant.

Recommended Posts

À propos de la différence entre PostgreSQL su et sudo
À propos de la différence entre "==" et "is" en python
À propos de la relation entre Git et GitHub
Quelle est la différence entre «pip» et «conda»?
Quelle est la différence entre Unix et Linux?
BERT peut-il comprendre la différence entre «Ame (bonbons)» et «Ame (pluie)»?
Quelle est la différence entre usleep, nanosleep et clock_nanosleep?
Comment utiliser argparse et la différence entre optparse
Différence entre processus et travail
Différence entre "categorical_crossentropy" et "sparse_categorical_crossentropy"
Différence entre régression et classification
Différence entre MicroPython et CPython
Différence entre ps a et ps -a
Différence entre return et print-Python
Quelle est la différence entre les liens symboliques et les liens durs?
Comprendre la différence entre l'affectation cumulative aux variables et l'affectation cumulative aux objets
Différence entre le processus de premier plan et le processus d'arrière-plan compris par principe
Différence entre Ruby et Python Split
Différence entre list () et [] en Python
Différence entre SQLAlchemy filter () et filter_by ()
Différence entre == et est en python
(Remarque) Différence entre la passerelle et la passerelle par défaut
Différence entre le randint de Numpy et le randint de Random
Différence entre tri et tri (mémorial)
Différence entre la série python2 et la série python3 dict.keys ()
[Python] Différence entre fonction et méthode
Différence entre SQLAlchemy flush () et commit ()
Python - Différence entre exec et eval
[Python] Différence entre randrange () et randint ()
[Python] Différence entre trié et trié (Colaboratoire)
J'ai étudié le comportement de la différence entre lien dur et lien symbolique
Linux (À propos des utilisateurs et des commandes su / sudo)
[Xg boost] Différence entre softmax et softprob
différence entre les instructions (instructions) et les expressions (expressions) en Python
[Introduction à Python] Quelle est la différence entre une liste et un taple?
[Django ORM] Différence entre values () et only ()
Différences dans la relation entre PHP et Python enfin et quitter
Différence entre @classmethod et @staticmethod en Python
Différence entre append et + = dans la liste Python
Différence entre non local et global en Python
Différence entre la régression linéaire, la régression Ridge et la régression Lasso
[Python] Différence entre la méthode de classe et la méthode statique
Différence entre le fichier env_file docker-compose et le fichier .env
La relation subtile entre Gentoo et pip
[python] Différence entre la sortie rand et randn
Différence de vitesse entre wsgi, bouteille et flacon
Différence entre numpy.ndarray et list (dimension, taille)
À propos de _ et __
Différence entre ls -l et la commande cat
Vérification de la différence et de la compatibilité entre keras et tf.keras # 1
À propos du comportement de copy, deepcopy et numpy.copy
La réponse de "1/2" est différente entre python2 et 3
[python] Différence entre variable et self. Variable dans la classe
Jeu manuel Python (interopérabilité entre CSV et PostgreSQL)
Modélisation-estimation de Bayes de la différence entre les deux groupes-
À propos du test
À propos de la file d'attente
[Introduction au modèle des maladies infectieuses] Quelle est la différence entre l'épidémie d'avril et cette épidémie? .. .. ‼
Étudier la relation entre les dépenses de crème glacée et la température