Je veux créer un nouvel utilisateur dans MySQL et lui donner un accès complet à une seule base de données, disons dbTest
, que je crée avec une commande comme create database dbTest;
. Quelles seraient les commandes MySQL pour faire cela?
Je veux créer un nouvel utilisateur dans MySQL et lui donner un accès complet à une seule base de données, disons dbTest
, que je crée avec une commande comme create database dbTest;
. Quelles seraient les commandes MySQL pour faire cela?
Essayez ceci pour créer l'utilisateur:
CREATE USER 'user'@'hostname';
Essayez ceci pour lui donner accès à la base de données dbTest
:
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
Si vous exécutez le code / site accédant à MySQL sur la même machine, le nom d'hôte serait localhost.
Maintenant, la panne.
GRANT
- Il s'agit de la commande utilisée pour créer des utilisateurs et accorder des droits sur les bases de données, les tables, etc.
ALL PRIVILEGES
- Cela indique que l'utilisateur aura tous les privilèges standard. Cependant, cela n'inclut pas le privilège d'utiliser la commande GRANT.
dbtest.*
- Cette instructions MySQL pour appliquer ces droits pour une utilisation dans l'ensemble de la base de données dbtest. Vous pouvez remplacer le * par des noms de table spécifiques ou stocker des routines si vous le souhaitez.
TO 'user'@'hostname'
- «utilisateur» est le nom d'utilisateur du compte d'utilisateur que vous créez. Remarque: Vous devez avoir les guillemets simples là-dedans. 'hostname' indique à MySQL à partir de quels hôtes l'utilisateur peut se connecter. Si vous ne le souhaitez que sur la même machine, utilisezlocalhost
IDENTIFIED BY 'password'
- Comme vous l'auriez deviné, cela définit le mot de passe de cet utilisateur.
Syntaxe
Pour créer un utilisateur dans MySQL / MariaDB 5.7.6 et supérieur, utilisez la
CREATE USER
syntaxe :puis pour accorder tous les accès à la base de données (par exemple
my_db
), utilisez laGRANT
syntaxe , par exempleOù
ALL
( priv_type ) peut être remplacé par un privilège spécifique tel queSELECT
,INSERT
,UPDATE
,ALTER
, etc.Ensuite, pour recharger les autorisations nouvellement attribuées, exécutez:
Exécution
Pour exécuter les commandes ci-dessus, vous devez exécuter la
mysql
commande et les saisir dans l'invite, puis vous déconnecter parquit
commande ou Ctrl- D.Pour exécuter à partir du shell, utilisez le
-e
paramètre (remplacez-leSELECT 1
par l'une des commandes ci-dessus):ou imprimer la déclaration à partir de l'entrée standard:
Si l' accès est refusé avec ci-dessus, spécifiez
-u
(pour l'utilisateur) et-p
(pour le mot de passe) les paramètres, ou pour un accès à long terme, définissez vos informations d'identification~/.my.cnf
, par exempleIntégration Shell
Pour les personnes qui ne sont pas familières avec la syntaxe MySQL, voici des fonctions shell pratiques qui sont faciles à mémoriser et à utiliser (pour les utiliser, vous devez charger les fonctions shell incluses plus bas).
Voici un exemple:
Pour utiliser les commandes ci-dessus, vous devez copier et coller les fonctions suivantes dans votre fichier rc (par exemple
.bash_profile
) et recharger votre shell ou source le fichier. Dans ce cas, tapez simplementsource .bash_profile
:Remarque: Si vous préférez ne pas laisser de trace (comme les mots de passe) dans votre historique Bash, vérifiez: Comment empêcher les commandes de s'afficher dans l'historique bash?
la source
~/.my.cnf
comme suggéré ci-dessus.Pour créer un utilisateur et accorder tous les privilèges sur une base de données.
Connectez-vous à MySQL:
Maintenant, créez et accordez
Utilisateur anonyme (pour les tests locaux uniquement)
Alternativement, si vous souhaitez simplement accorder un accès illimité complet à une base de données (par exemple sur votre machine locale pour une instance de test, vous pouvez accorder l'accès à l'utilisateur anonyme, comme ceci:
Être conscient
C'est très bien pour les données indésirables en cours de développement. Ne faites pas cela avec tout ce qui vous tient à cœur.
la source
ignorez l' option -p , si l'utilisateur mysql n'a pas de mot de passe ou appuyez simplement sur le bouton "[Entrée]" pour contourner. les chaînes entourées d'accolades doivent être remplacées par des valeurs réelles.
la source
Vous pouvez créer de nouveaux utilisateurs à l'aide de l' instruction CREATE USER et leur accorder des droits à l'aide de GRANT .
la source
Pour moi, cela a fonctionné.
où
la source
La commande ci-dessous fonctionnera si vous voulez créer un nouvel utilisateur lui donner tous les accès à une base de données spécifique (pas toutes les bases de données de votre Mysql) sur votre hôte local.
Cela accordera tous les privilèges à une seule base de données
test_database
(dans votre casdbTest
) à cet utilisateur sur localhost.Vérifiez les autorisations accordées à cet utilisateur par la commande ci-dessus en exécutant la commande ci-dessous.
Au cas où, si vous souhaitez limiter l'accès utilisateur à une seule table
la source
Dans le cas où
host
partie est omise, elle prend par défaut le symbole générique%
, autorisant tous les hôtes.CREATE USER 'service-api';
GRANT ALL PRIVILEGES ON the_db.* TO 'service-api' IDENTIFIED BY 'the_password'
la source