Atikh's DBA blog
  • Home
  • Oracle
  • MySQL
  • MongoDB
  • PostgreSQL
  • Snowflake
  • About Me
  • Contact Us
Showing posts with label create mysql user. Show all posts
Showing posts with label create mysql user. 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 (74)

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 (1)
    • ▼  January (1)
      • Table Dropped in Oracle Database ? Worry not, we c...

Popular Posts

  • PostgreSQL : pg_hba. conf configuration file
    In PostgreSQL, there are a number of configuration files, some of the files needs to be managed by postgres DBA, out of which  pg_hba.conf ...
  • User Managed Backups in Oracle
    Definition :Backup is real and consistent copy of data from database that could be used to reconstruct the data after and incident. ...
  • 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...
  • ORACLE : Creating a new pluggable database using PDB$SEED
    As a database administrator, you might come across creating a pluggable database, here is the method to create a pluggable database (PDB), F...
  • Oracle ASM Scrubbing
    What is ASM Scrubbing?   ASM scrubbing is a process used to identify and repair data corruption issues within an ASM disk group. ASM Scr...

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