Creating Additional Administrators Using a Command-Line Client 🔗
Use a command-line client such as MySQL Client or MySQL Shell to create additional DB system administrators.
Connect to the DB system with the credential of a DB system administrator using a command-line client such as MySQL client or MySQL Shell.
Run the following command to create another DB system administrator:
CREATE USER <admin_user_name> IDENTIFIED BY '<password>' DEFAULT ROLE 'administrator';
GRANT PROXY ON ``@`` TO <admin_user_name> WITH GRANT OPTION;
(Optional) Run the following command to list the privileges granted to the new user account:
SHOW GRANTS FOR <admin_user_name> \G
The output shows:
*************************** 1. row ***************************
Grants for <admin_user_name>@%: GRANT USAGE ON *.* TO `<admin_user_name>`@`%` WITH GRANT OPTION
*************************** 2. row ***************************
Grants for <admin_user_name>@%: GRANT PROXY ON ``@`` TO `<admin_user_name>`@`%` WITH GRANT OPTION
*************************** 3. row ***************************
Grants for <admin_user_name>@%: GRANT `administrator`@`%` TO `<admin_user_name>`@`%`
3 rows in set (0.00 sec)
(Optional) Connect to the DB system with the credential of the new administrator using a command-line client and run the following to list the privileges:
SHOW GRANTS \G
The output shows:
*************************** 1. row ***************************
Grants for <admin_user_name>@%: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,
PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES,
EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE,
ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE ROLE, DROP ROLE ON *.*
TO `<admin_user_name>`@`%` WITH GRANT OPTION
*************************** 2. row ***************************
Grants for <admin_user_name>@%: GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,
BACKUP_ADMIN,CONNECTION_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,
FLUSH_USER_RESOURCES,OPTION_TRACKER_OBSERVER,REPLICATION_APPLIER,ROLE_ADMIN,SET_ANY_DEFINER,SHOW_ROUTINE,
TRANSACTION_GTID_TAG,XA_RECOVER_ADMIN ON *.* TO `<admin_user_name>`@`%` WITH GRANT OPTION
*************************** 3. row ***************************
Grants for <admin_user_name>@%: REVOKE INSERT, UPDATE, DELETE, CREATE, DROP,
REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW,
CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `mysql`.* FROM `<admin_user_name>`@`%`
*************************** 4. row ***************************
Grants for <admin_user_name>@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER,
CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE,
EVENT, TRIGGER ON `mysql_audit`.* FROM `<admin_user_name>`@`%`
*************************** 5. row ***************************
Grants for <admin_user_name>@%: REVOKE INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES,
INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE,
EVENT, TRIGGER ON `mysql_option`.* FROM `<admin_user_name>`@`%`
*************************** 6. row ***************************
Grants for <admin_user_name>@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER,
CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE,
EVENT, TRIGGER ON `sys`.* FROM `<admin_user_name>`@`%`
*************************** 7. row ***************************
Grants for <admin_user_name>@%: GRANT PROXY ON ``@`` TO `<admin_user_name>`@`%` WITH GRANT OPTION
*************************** 8. row ***************************
Grants for <admin_user_name>@%: GRANT `administrator`@`%` TO `<admin_user_name>`@`%`
8 rows in set (0.00 sec)