(!LANG :Démarrer avec PostgreSQL. Gestion des utilisateurs de base de données

Après avoir téléchargé Base de données de mots clés anglais, vous devez installer un serveur de base de données localement et apprendre à effectuer des sélections. Pour ce faire, nous proposons des instructions étape par étape.

IMPORTANT : Si vous n'avez aucune expérience de travail avec des bases de données ou si cette expérience est minime, nous vous recommandons fortement de commencer avec une base minimale pour élaborer le processus.

Les captures d'écran dans les instructions montrent le travail avec une base minimale et, par conséquent, le temps est indiqué pour une base minimale, mais travailler avec une base étendue et maximale prendra plus de temps.

Téléchargement et installation du serveur de base de données PostgreSQL

http://www.postgresql.org/download/windows/

1. Télécharger programme gratuit pour le socle Données PostgreSQL sur le site officiel http://www.postgresql.org/
télécharger/windows/

http://www.enterprisedb.com/products-services-training/pgdownload#windows :

Suivez ensuite le lien vers page détaillée versions de base de données pour différents systèmes d'exploitation : http://www.enterprisedb.com/
produits-services-formation/
pgdownload#windows :


IMPORTANT : Nous vous recommandons d'installer le serveur de base de données et d'effectuer des sélections dans Système 64 bits avec au moins 6 Go mémoire vive lorsque vous travaillez avec des bases de données minimales et étendues. Dans le cas d'une base maximale, la quantité de RAM recommandée est de 32 Go, également souhaitable disque rapide. Sur un ordinateur doté d'un système 32 bits, le processus d'importation de données, de leur indexation et de leur récupération prendra un temps très, très long, il est donc préférable d'abandonner cette idée.

Si vous ne connaissez pas la profondeur de bits de votre système d'exploitation, vous pouvez la rechercher dans les propriétés de l'ordinateur ( bouton de droite souris sur l'élément « Ordinateur », sélectionnez « Propriétés » dans le menu) :


2. Installez la base de données PostgreSQL téléchargée. Lors de l'installation, presque tout est par défaut...


...sauf quelques petites choses.

3. On démarre l’opération d’optimisation de table de la même manière :

vide "eng_data_table" ;


L'optimisation prend en moyenne 15 à 30 minutes.

Remarque : Nous effectuons les requêtes une par une, en effaçant d'abord les requêtes précédentes déjà exécutées. Vous pouvez savoir si la demande a été terminée ou non à partir du message dans le volet de sortie en bas (il apparaît lorsque la demande est terminée), et vous pouvez connaître le temps d'exécution dans la barre d'état en bas de la fenêtre.

L'administration du système

Ce message est brèves instructions pour les débutants, pour ceux qui ont installé PostgreSQL pour la première fois. Tout est ici information nécessaire pour démarrer avec PostgreSQL.

Connexion au SGBD

La première chose à faire est d'accéder à PostgreSQL, en tant que superutilisateur.
Les paramètres d'authentification se trouvent dans le fichier pg_hba.conf.
  1. local tous les pairs postgres
Cette ligne indique que l'utilisateur postgres peut se connecter à n'importe quelle base de données PostgreSQL locale via un socket. Il n'est pas nécessaire de saisir un mot de passe, le système d'exploitation transmettra le nom d'utilisateur et il sera utilisé pour l'authentification.
Connectons-nous :
  1. $ sudo -u postgres psql postgres postgres
Pour pouvoir vous connecter via le réseau, vous devez ajouter la ligne à pg_hdba.conf :
  1. # TYPE MÉTHODE D'ADRESSE UTILISATEUR DE LA BASE DE DONNÉES
  2. hostssl tous tous 0.0.0.0/0 md5
Méthode d'authentification md5 signifie que vous devrez saisir un mot de passe pour vous connecter. Ce n'est pas très pratique si vous utilisez fréquemment la console psql. Si vous souhaitez automatiser certaines actions, la mauvaise nouvelle est que psql n'accepte pas de mot de passe comme argument. Il existe deux manières de résoudre ces problèmes : définir la variable d'environnement appropriée et stocker le mot de passe dans un fichier .pgpass spécial.

Définition de la variable d'environnement PGPASSWORD

Je dirai tout de suite qu'il vaut mieux ne pas utiliser cette méthode, car certains systèmes d'exploitation permettent de visualiser utilisateurs ordinaires variables d'environnement utilisant ps. Mais si vous le souhaitez, vous devez écrire dans le terminal :
  1. export PGPASSWORD=mon mot de passe
La variable sera disponible dans la session en cours. Si vous devez définir une variable pour toutes les sessions, vous devez alors ajouter la ligne de l'exemple au fichier .bashrc ou .bash_profile

Stockage du mot de passe dans le fichier .pgpass

Si nous parlons de Linux, le fichier doit se trouver dans $HOME (/home/username). Seul le propriétaire (0600) doit disposer des droits d'écriture et de lecture. Vous devez écrire des lignes comme celle-ci dans le fichier :
  1. nom d'hôte: port: base de données: nom d'utilisateur: mot de passe
Vous pouvez écrire « * » dans les quatre premiers champs, ce qui signifie qu'il n'y aura pas de filtrage (sélection complète).

Obtenir des informations d'aide

\? - affichera toutes les commandes disponibles ainsi que leur brève description,
\h - affichera une liste de toutes les requêtes disponibles,
\h CREATE - fournira de l'aide pour une demande spécifique.

Gestion des utilisateurs du SGBD

Comment obtenir une liste des utilisateurs de PostgreSQL ? Ou vous pouvez interroger la table pg_user.
  1. SELECT * FROM pg_user ;

Création d'un nouvel utilisateur PostgreSQL

Depuis coquille psql, cela peut être fait en utilisant la commande CREATE.
  1. CREATE USER nom d'utilisateur AVEC mot de passe "mot de passe" ;
Ou vous pouvez utiliser le terminal.
  1. createuser -S -D -R -P nom d'utilisateur
Vous serez invité à saisir un mot de passe.

Modification du mot de passe utilisateur

  1. ALTER USER nom d'utilisateur AVEC MOT DE PASSE "mot de passe" ;

Modification des rôles d'utilisateur

Pour accorder à l'utilisateur l'autorisation de créer des bases de données, exécutez la requête suivante :
  1. ALTER ROLE nom d'utilisateur AVEC CREATEDB ;

Gestion de base de données

Affichage d'une liste de bases de données dans le terminal psql : Idem depuis le terminal Linux :
  1. psql -l
Création d'une base de données à partir de psql (Terminal PostgreSQL)
  1. CRÉER UNE BASE DE DONNÉES nombdb PROPRIÉTAIRE dbadmin ;
Création nouvelle base données à l'aide du terminal :
  1. crééb -O nom d'utilisateur nom de base de données ;

Configuration des droits d'accès à la base de données

Si l'utilisateur est propriétaire de la base de données, alors il dispose de tous les droits. Mais si vous souhaitez accorder l'accès à un autre utilisateur, vous pouvez le faire en utilisant la commande GRANT. La requête ci-dessous permettra à l'utilisateur de se connecter à la base de données. Mais n'oublie pas fichier de configuration pg_hba.conf, il doit également disposer des autorisations de connexion appropriées.
  1. GRANT CONNECT ON DATABASE dbname TO dbadmin ;

PostgreSQL est un SGBD objet-relationnel multiplateforme avec code source. Cet article va vous montrer comment installer PostgreSQL dans Ubuntu-Linux, connectez-vous-y et effectuez une paire requêtes SQL simples, ainsi que comment configurer des sauvegardes.

Pour installer PostgreSQL 9.2 sur Ubuntu 12.10, exécutez les commandes suivantes :

sudo apt-add-repository ppa:pitti/ postgresql
sudo apt-get mise à jour
sudo apt-get install postgresql-9.2

Essayons de travailler avec le SGBD via le shell :

sudo -u postgres psql

Créons une base de données de test et un utilisateur test :

CRÉER UNE BASE DE DONNÉES test_database ;
CREATE USER test_user AVEC mot de passe "qwerty" ;
ACCORDEZ TOUT SUR LA BASE DE DONNÉES test_database À test_user ;

Pour quitter le shell, entrez la commande \q .

Essayons maintenant de travailler avec la base de données créée au nom de test_user :

psql -h localhost test_database test_user

Créons un nouveau tableau :

CREATE SEQUENCE user_ids ;
Utilisateurs CREATE TABLE (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids" ) ,
connectez-vous CHAR(64),
mot de passe CHAR(64));

Veuillez noter que contrairement à certains autres SGBD, PostgreSQL n'a pas de colonnes avec la propriété auto_increment. Au lieu de cela, Postgres utilise des séquences. Sur ce moment Il suffit de savoir qu’en utilisant la fonction nextval on peut obtenir des nombres uniques pour une séquence donnée :

SELECT NEXTVAL ("id_utilisateur" ) ;

En définissant la valeur par défaut du champ id de la table des utilisateurs sur NEXTVAL("ID_utilisateur"), nous avons obtenu le même effet que donne auto_increment. Lors de l'ajout de nouveaux enregistrements à la table, nous ne pouvons pas spécifier d'identifiant, car un identifiant unique sera généré automatiquement. Plusieurs tables peuvent utiliser la même séquence. De cette façon, nous pouvons garantir que les valeurs de certains champs de ces tableaux ne se chevauchent pas. En ce sens, les séquences sont plus flexibles que auto_increment.

Exactement la même table peut être créée en utilisant une seule commande :

CRÉER TABLE utilisateurs2 (
id CLÉ PRIMAIRE SÉRIE,
connectez-vous CHAR(64),
mot de passe CHAR(64));

Dans ce cas, la séquence du champ id est créée automatiquement.

Maintenant, en utilisant la commande \d, vous pouvez voir une liste de toutes les tables disponibles, et en utilisant \d users, vous pouvez voir une description de la table des utilisateurs. Si vous n'obtenez pas les informations que vous recherchez, essayez \d+ au lieu de \d . Vous pouvez obtenir une liste de bases de données avec la commande \l et basculer vers une base de données spécifique avec la commande \c dbname. Pour afficher l'aide sur la commande, dites \? .

Il est important de noter que PostgreSQL convertit par défaut les noms de tables et de colonnes en minuscules. Si vous ne souhaitez pas ce comportement, vous pouvez utiliser des guillemets doubles :

CREATE TABLE "une autreTable" ("uneValeur" VARCHAR (64 ) ) ;

Une autre fonctionnalité de PostgreSQL qui peut causer des difficultés lorsque l'on commence à travailler avec ce SGBD est ce que l'on appelle les « schémas ». Un schéma est quelque chose comme un espace de noms pour les tables, comme un répertoire avec des tables dans une base de données.

Création d'un schéma :

CRÉER des réservations SCHEMA ;

Passer au schéma :

FIXER search_path TO réservations ;

Afficher la liste régimes existants vous pouvez utiliser la commande \dn. Le schéma par défaut est nommé public. En principe, vous pouvez utiliser PostgreSQL avec succès sans connaître l’existence de schémas. Mais lorsque vous travaillez avec du code existant, et dans certains cas extrêmes, la connaissance des schémas peut s'avérer très utile.

Sinon, travailler avec PostgreSQL n'est pas très différent de travailler avec n'importe quel autre SGBD relationnel :

INSERT INTO utilisateurs (identifiant, mot de passe)
VALEURS ("afiskon" , "123456" ) ;
SELECT * FROM utilisateurs ;

Si vous essayez maintenant de vous connecter à Postgres depuis une autre machine, vous échouerez :

psql -h 192.168.0.1 test_database test_user

Psql : je ne pouvais pas se connecter au serveur : connexion refusée
Le serveur s'exécute-t-il sur l'hôte "192.168.0.1" et accepte-t-il
Connexions TCP/IP sur le port 5432 ?

Pour résoudre ce problème, ajoutez la ligne :

Listen_addresses = "localhost,192.168.0.1"

...au fichier /etc/postgresql/9.2/main/postgresql.conf également.

La première façon de vérifier si vous avez accès au serveur de base de données est d'essayer de créer une base de données. Fonctionnement Serveur PostgreSQL peut gérer plusieurs bases de données, vous permettant de créer des bases de données distinctes pour différents projets et utilisateurs.

Votre administrateur a peut-être déjà créé une base de données pour vous et vous a donné son nom. Dans ce cas, vous pouvez ignorer cette étape et passer à la section suivante.

Pour créer une base de données, nommée mydb dans cet exemple, exécutez commande suivante:

$createdb ma base de données

Si vous ne voyez aucun message, l'opération a réussi et vous pouvez ignorer la suite de cette section.

Si vous voyez un message du type :

Createdb : commande pas trouvé

Cela signifie que PostgreSQL n'a pas été installé correctement. Soit il n'est pas installé du tout, soit son répertoire n'est pas inclus dans le chemin de recherche de la commande shell. Essayez d'appeler la même commande en spécifiant chemin absolu:

$ /usr/local/pgsql/bin/createdb ma base de données

Ce chemin peut être différent pour vous. Contactez votre administrateur ou vérifiez que les instructions d'installation ont été suivies pour corriger la situation.

Autre réponse possible :

Createdb : échec de la connexion à la base de données postgres : échec de la connexion au serveur : aucun fichier ou répertoire de ce type s'exécute-t-il réellement localement et accepte-t-il les connexions via le socket de domaine "/tmp/.s.PGSQL.5432" ?

Cela signifie que le serveur est en panne ou que Createb ne peut pas s'y connecter. Dans ce cas, consultez les instructions d'installation ou contactez votre administrateur.

Vous pouvez également recevoir le message suivant :

Createdb : échec de la connexion à la base de données postgres : IMPORTANT : le rôle "joe" n'existe pas

où votre nom d'utilisateur apparaît. Cela indique que l'administrateur n'a pas créé de compte PostgreSQL pour vous. (Les comptes PostgreSQL sont différents des comptes d'utilisateurs système opérateur.) Si vous êtes vous-même administrateur, lisez le chapitre 20, qui explique comment créer des comptes. Pour créer un nouvel utilisateur, vous devez devenir l'utilisateur du système d'exploitation sous lequel PostgreSQL a été installé (généralement postgres). Il est également possible que l'on vous attribue un nom d'utilisateur PostgreSQL qui ne correspond pas au nom de votre système d'exploitation ; dans ce cas, vous devez spécifier explicitement votre nom d'utilisateur PostgreSQL à l'aide du commutateur ou du paramètre -U variable d'environnement PGUSER.

si tu as Compte utilisateur mais n'a pas les droits pour créer une base de données, vous verrez le message :

Createdb : échec de la création de la base de données : ERREUR : aucun droit pour créer la base de données

Tous les utilisateurs ne sont pas autorisés à créer des bases de données. Si PostgreSQL refuse de créer des bases de données pour vous, vous avez besoin d'une autorisation pour le faire. Dans ce cas, contactez votre administrateur. Si vous avez installé PostgreSQL vous-même, pour les besoins de cette introduction, vous devez être connecté en tant qu'utilisateur exécutant le serveur de base de données.

Vous pouvez également créer des bases de données avec d'autres noms. PostgreSQL vous permet de créer autant de bases de données que vous le souhaitez. Les noms de bases de données doivent commencer par une lettre et ne pas dépasser 63 caractères. Il est pratique d'utiliser votre nom d'utilisateur actuel comme nom de base de données. De nombreux utilitaires prendront ce nom par défaut, afin que vous puissiez faciliter la saisie des commandes. Pour créer une base de données portant ce nom, saisissez simplement :

$crééb

Si vous ne souhaitez plus utiliser votre base de données, vous pouvez la supprimer. Par exemple, si vous êtes le propriétaire (créateur) de la base de données mydb, vous pouvez la détruire en exécutant la commande suivante :

$dropdb ma base de données

(Cette commande n'utilise pas par défaut le nom de base de données de l'utilisateur actuel ; vous devez le spécifier explicitement.) Cela supprimera physiquement tous les fichiers associés à la base de données, et comme cette action ne peut pas être annulée, ne l'exécutez pas sans penser aux conséquences.

1.Installation

1.1. Installation depuis le dépôt officiel

Si la dernière version disponible de PostgreSQL est importante pour vous (sinon, je vous conseille de bien réfléchir), alors vous devez l'installer depuis dépôt officiel PostgreSQL. Cela peut être fait en suivant les instructions officielles. Ensuite, vous devez mettre à jour les packages :

$ sudo apt-get mise à jour

Et installez PostgreSQL avec la commande :

$ sudo apt-get install postgresql-x.x

  • x.x- version requise

Liste de tous versions disponibles peut être visualisé avec la commande :

$ sudo apt-cache recherche postgresql

1.2. Installation à partir du référentiel du système d'exploitation

L'installation de PostgreSQL à partir du référentiel du système d'exploitation se fait en ajoutant deux packages principaux :

$ sudo apt-get install postgresql postgresql-contrib

2. Console PostgreSQL

Toutes les opérations disponibles sur les bases de données et les utilisateurs sont effectuées depuis la console psql.

2.1. Connectez-vous à la console

Vous devez d'abord vous connecter en tant qu'utilisateur postgres, cela n'est possible qu'avec des droits racine:

# su - postgres

Utilisateur postgres est une sorte de superutilisateur pour la base de données PostgreSQL. Puis, sous l'utilisateur postgres vous pouvez vous connecter à la console :

Ou plus simple, connectez-vous simplement à la console psql sous utilisateur postgres:

$ sudo -u postgres psql

2.2. Quitter la console

Lorsque toutes les opérations sur les utilisateurs et les bases de données PostgreSQL sont terminées dans la console psql, il n'est pas immédiatement possible de savoir comment en sortir. Tout est très simple ici :

Postgres=#\q

Et, si nécessaire, nous laissons l'utilisateur postgres:

3. Utilisateurs de PostgreSQL

3.1. Création d'un utilisateur

Tout est assez simple ici :

# CRÉER un nom d'utilisateur UTILISATEUR AVEC LE MOT DE PASSE "12345" ;

  • nom d'utilisateur- connexion d'un nouvel utilisateur
  • ‘12345’ - Mot de passe de l'utilisateur. Inscrit entre guillemets

3.2. Supprimer un utilisateur

C'est encore plus simple ici :

# DROP USER nom d'utilisateur ;

  • nom d'utilisateur- login de l'utilisateur qui doit être supprimé.

4. Bases de données

Toutes les manipulations avec la base de données sont également effectuées dans la console psql.

4.1. Création de base de données

Tout ici est le même que lors de la création d'un utilisateur :

# CREATE DATABASE nom de base de données ;

4.2. Supprimer une base de données

# DROP DATABASE nom de base de données ;
  • nom de base de données- nom de la base de données à supprimer

Veuillez noter que la base de données refusera d'être supprimée dans certains cas :

  • S'il y a des utilisateurs ayant des droits sur cette base de données. Avant de supprimer la base de données, leurs droits doivent être révoqués. Nous en reparlerons plus tard.
  • S'il existe au moins une session de connexion ouverte avec la base de données. Dans ce cas, les séances devront être fermées. En dernier recours, vous pouvez simplement arrêter les serveurs qui interagissent avec cette base de données au moment de sa suppression (même si cela ne sert à rien de les démarrer après avoir supprimé la base de données)

4.3. Attribution de droits aux utilisateurs

Avoir une base de données et des utilisateurs dans un système PostgreSQL ne produit pas en soi de résultats. Pour bon fonctionnement utilisateur spécifique avec une base de données spécifique, il doit se voir attribuer des droits pour travailler avec elle. Pour ce faire, exécutez la commande :

# ACCORDER TOUS LES PRIVILÈGES SUR LA BASE DE DONNÉES dbname AU nom d'utilisateur ;

  • nom de base de données- nom de la base de données à laquelle les droits d'accès doivent être accordés
  • nom d'utilisateur- le nom de l'utilisateur qui se verra accorder des droits sur la base de données spécifiée

4.4. Suppression des droits d'utilisateur

Parfois, il devient nécessaire de changer l'utilisateur qui gère la base de données, ou simplement de révoquer les droits pour sa suppression ultérieure. Je recommande de ne pas négliger cette commande et d'agir selon le principe « Un utilisateur gère une base de données ».