Atikh's DBA blog
  • Home
  • Oracle
  • MySQL
  • MongoDB
  • PostgreSQL
  • Snowflake
  • About Me
  • Contact Us

Create New User in MySQL Database

 Atikh Shaikh     create mysql user, create user, create user in mysql, mysql, mysql user     No comments   

There is three ways to create new user in MySQL

1. Using grant statement
2. By manipulating the MySQL grant tables directly using SQL statement
3. Using create user command

Before creating user we should know below details

1. username

2. hostname i.e. host/ip from which user is going to connect it should be  either ‘localhost’ or hostname/ip or ‘%’ ( wild card-will be able to connect from any source)

Using grant statement


Privileges need to be set up by root user, Login to instance using root user
Consider we are creating user test@localhost with access on all databases and its associated objects.

mysql> select database(), user();
+------------+----------------+
| database() | user()         |
+------------+----------------+
| mysql      | root@localhost |
+------------+----------------+

Below is the command to create user using GRANT statement. We can see this method is depreciated in 5.7 and will be removed in future release.flush privileges is used to update grants table in order to update grants


mysql>  grant all privileges on *.* to test@localhost identified by 'MysqlDB!23';
Query OK, 0 rows affected, 1 warning (0.11 sec)

mysql> show warnings;

| Level   | Code | Message                                          -------------------------------------------------------------------
| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement   |
+---------+------+-------------------------------------------------
1 row in set (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

Verification:

mysql> select user,host,account_locked from user where user='test';
+------+-----------+----------------+
| user | host      | account_locked |
+------+-----------+----------------+
| test | localhost | N              |
+------+-----------+----------------+
1 row in set (0.00 sec)
   
Connecting to database using created account

bash$ mysql -u test -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
.....

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> select database(),user();

+------------+----------------+
| database() | user()         |
+------------+----------------+
| mysql      | test@localhost |
+------------+----------------+

1 row in set (0.00 sec)

By manipulating the MySQL grant tables directly using SQL statement


Below are commands used to create user using INSERT statement. This is kind of inserting user information in mysq.user table with privileges. Following example creates user test2 with different privileges.

mysql> insert into user (host,user,authentication_string,select_priv,insert_priv,delete_priv,create_priv,drop_priv,reload_priv,alter_priv,ssl_cipher,x509_issuer,x509_subject)
    ->  values ('localhost','test1',password('MysqlDB!12'),"y","y","y","y","y","y","y","","","");
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> show warnings;

+----------------------------------------------------------------
| Level   | Code | Message                                       
+---------+------+--------------------------------------------------
| Warning | 1681 | 'PASSWORD' is deprecated and will be removed in a future release. |
+---------+------+--------------------------------------------------
1 row in set (0.00 sec)

mysql> flush privileges;


Query OK, 0 rows affected (0.01 sec)

Verification:

mysql> select user, host,account_locked from mysql.user where user like 'test1';
+-------+-----------+----------------+
| user  | host      | account_locked |
+-------+-----------+----------------+
| test1 | localhost | N              |
+-------+-----------+----------------+

1 row in set (0.00 sec)

By Create user statement


This is most preferred method for user creation.


mysql> create user 'test4'@'%' identified by 'MysqlDB!23';
Query OK, 0 rows affected (0.02 sec)

mysql> grant select on *.* to 'test4'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Verification:

mysql> select user, host,account_locked from mysql.user where user like 'test4';
+-------+------+----------------+
| user  | host | account_locked |
+-------+------+----------------+
| test4 | %    | N              |
+-------+------+----------------+
  • Share This:  
  •  Facebook
  •  Twitter
  •  Instagram
  •  Pin
  •  linkedin
  •  reddit
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Author

Atikh Shaikh
View my complete profile

Categories

  • MongoDB (18)
  • Oracle 12c (30)
  • Oracle12cR2 New Feature (3)
  • PostgreSQL (20)
  • RMAN (10)
  • Snowflake (8)
  • mysql (23)
  • oracle (74)

Blog Archive

  • ▼  2018 (38)
    • ▼  November (25)
      • Introduction On MySQL
      • SQL Modes in MySQL
      • MySQL Version explained
      • MySQL Storage Engines (Part 1)
      • MySQL Storage Engines (Part 2)
      • Login to MySQL Database on Linux
      • Error Code: 1419. You do not have the SUPER privil...
      • Create MySQL database on Linux
      • Create New User in MySQL Database
      • MySQL Default database | MySQL System Database
      • Oracle ASM Basic Commands
      • Oracle Database Schema Refresh
      • Create User in Oracle Database Pre-12c and 12c
      • RMAN Disk backup and List or Report RMAN Backup
      • RMAN Backup of Single Datafile and List Backup
      • Difference Between User, Service account and Schem...
      • Create MySQL Database Backup | mysqldump mysqlbackup
      • Switching between ARCHIVELOG Mode and NOARCHIVELOG...
      • Introduction to MongoDB
      • Introduction to PostgreSQL
      • Installation of PostgreSQL 9.6 on Windows
      • Installation of MongoDB on Windows
      • Oracle DBA Scripts
      • Databases, Collections and Documents in MongoDB
      • CRUD (Create, Read, Update, Delete) Operations in ...
    • ►  December (13)
  • ►  2019 (33)
    • ►  January (15)
    • ►  February (6)
    • ►  March (2)
    • ►  April (5)
    • ►  May (5)
  • ►  2020 (5)
    • ►  April (1)
    • ►  May (2)
    • ►  July (2)
  • ►  2021 (8)
    • ►  June (3)
    • ►  July (3)
    • ►  August (1)
    • ►  December (1)
  • ►  2022 (33)
    • ►  May (3)
    • ►  June (10)
    • ►  July (3)
    • ►  August (4)
    • ►  September (8)
    • ►  October (3)
    • ►  November (2)
  • ►  2023 (14)
    • ►  February (1)
    • ►  April (5)
    • ►  May (2)
    • ►  June (1)
    • ►  September (1)
    • ►  October (1)
    • ►  December (3)
  • ►  2024 (5)
    • ►  January (2)
    • ►  March (3)
  • ►  2025 (6)
    • ►  March (1)
    • ►  April (3)
    • ►  May (2)

Popular Posts

  • ORA-29283: invalid file operation: unexpected "LFI" error (1509)[29437]
    I was trying to export the schema in my windows PC, it got stuck with below error    C:\Users\shaik\Videos\technodba exp>expdp userid...
  • PostgreSQL : How to get data directory location for PostgreSQL instance
    Sometimes, you start working on a PostgreSQL instance but forget about the data directory, here we will discuss different methods to know th...
  • Oracle 23ai : Use of NOVALIDATE Constraints in IMPDP
    While performing impdp operations in the Oracle database, Oracle performs validation checks for every constraint on the imported table, that...
  • ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
    In previous articles, we have learned about user creation and grants  in MySQL in detail, but there are a few privileges called global priv...
  • Oracle Dataguard Broker Configuration (DGMGRL)
    Data Guard Broker is a command-line interface that makes managing primary and standby databases easy. DBA can use a single command to switch...

Labels

oracle Oracle 12c mysql PostgreSQL MongoDB oracle 19c Oracle23c oracle19c Orale PDB-CDB oracle12c python AWS Oracle ASM Virtualbox pluggable database storage engine

Pages

  • Disclaimer
  • Privacy Policy

Follow TechnoDBA

Copyright © Atikh's DBA blog | Powered by Blogger