Atikh's DBA blog
  • Home
  • Oracle
  • MySQL
  • MongoDB
  • PostgreSQL
  • Snowflake
  • About Me
  • Contact Us
Showing posts with label create user in mysql. Show all posts
Showing posts with label create user in mysql. Show all posts

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              |
+-------+------+----------------+
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Instagram
  •  Pin
  •  linkedin
  •  reddit
Older Posts Home

Author

Atikh Shaikh
View my complete profile

Categories

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

Blog Archive

  • ►  2018 (38)
    • ►  November (25)
    • ►  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 (7)
    • ►  March (1)
    • ►  April (3)
    • ►  May (2)
    • ►  August (1)
  • ▼  2026 (3)
    • ►  January (1)
    • ▼  May (2)
      • Oracle Patching Process and Commands
      • Oracle AI Database 26ai: Redefining Operational Co...

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...
  • Table Dropped in Oracle Database ? Worry not, we can recover it
    There are a couple of options we can use to recover dropped tables in 19c Oracle database version  Restore table from Recycle Bin (assume ...
  • 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...
  • Save state of oracle Pluggable database (PDB)
     Oracle has introduced to save state of pluggable database in order to save time, effort and efficiency, suppose you want to keep pluggable ...
  • Oracle : Starting with RMAN Commands
    In previous article we have discussed introduction to RMAN , Now will learn RMAN commands and taking backup of database and understanding i...

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