Privilégios Padrão do MySQL

Tópicos Relacionados

Listando Privilégios com um Cliente de Linha de Comando

Use um cliente de linha de comando, como cliente MySQL ou Shell MySQL, para listar os privilégios concedidos a um usuário.

  1. Execute uma das ações a seguir para listar os privilégios concedidos a um usuário:
    • Para exibir os privilégios concedidos ao usuário atual, execute o seguinte comando:
      SHOW GRANTS \G
    • Para exibir os privilégios concedidos a um usuário nomeado, execute o seguinte comando:
      SHOW GRANTS FOR <Username> \G
    Se o comando tiver sido executado para um usuário administrador, User001, o comando retornará o seguinte:
    *************************** 1. row ***************************
    Grants for User001@%: 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 `User001`@`%` WITH GRANT OPTION
    *************************** 2. row ***************************
    Grants for User001@%: GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,
    CONNECTION_ADMIN,EXPORT_QUERY_RESULTS,FLUSH_OPTIMIZER_COSTS,FLUSH_PRIVILEGES,
    FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,OPTION_TRACKER_OBSERVER,
    REPLICATION_APPLIER,ROLE_ADMIN,SET_ANY_DEFINER,SHOW_ROUTINE,TRANSACTION_GTID_TAG,
    VECTOR_STORE_LOAD_EXEC,XA_RECOVER_ADMIN ON *.* TO `User001`@`%` WITH GRANT OPTION
    *************************** 3. row ***************************
    Grants for admin@%: GRANT CREATE TEMPORARY TABLES ON `sys`.* TO `admin`@`%` 
    WITH GRANT OPTION
    *************************** 4. row ***************************
    Grants for User001@%: 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 `User001`@`%`
    *************************** 5. row ***************************
    Grants for User001@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER, 
    CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, CREATE ROUTINE, 
    ALTER ROUTINE, EVENT, TRIGGER ON `mysql_audit`.* FROM `User001`@`%`
    *************************** 6. row ***************************
    Grants for User001@%: 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 `User001`@`%`
    *************************** 7. row ***************************
    Grants for User001@%: 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_rest_service_metadata`.* FROM FROM `User001`@`%`
    *************************** 8. row ***************************
    Grants for User001@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER, 
    CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, 
    EVENT, TRIGGER ON `mysql_tasks`.* FROM FROM `User001`@`%`
    *************************** 9. row ***************************
    Grants for User001@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER, LOCK TABLES, 
    CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `sys`.* FROM `User001`@`%`
    *************************** 10. row ***************************
    Grants for User001@%: GRANT PROXY ON ``@`` TO `User001`@`%` WITH GRANT OPTION
    *************************** 11. row ***************************
    Grants for User001@%: GRANT `administrator`@`%` TO `User001`@`%` WITH ADMIN OPTION
    8 rows in set (0.11 sec)

    As linhas correspondem ao seguinte:

Privilégios Estáticos Globais Concedidos

Determinados privilégios MySQL estáticos globais são concedidos ao administrador do sistema de banco de dados.

Tópicos Relacionados

Privilégios Dinâmicos Globais Concedidos

Determinados privilégios globais do MySQL dinâmico são concedidos ao administrador do sistema de banco de dados.

Tabela 5-11 Privilégios Dinâmicos Globais Concedidos

Privilégios Dinâmicos Globais
APPLICATION_PASSWORD_ADMIN AUDIT_ADMIN
BACKUP_ADMIN CONNECTION_ADMIN
EXPORT_QUERY_RESULTS (MySQL 9.1.1 ou superior somente) FLUSH_OPTIMIZER_COSTS
FLUSH_PRIVILEGES (MySQL 8.4.0 ou superior somente) FLUSH_STATUS
FLUSH_TABLES FLUSH_USER_RESOURCES
OPTION_TRACKER_OBSERVER (MySQL 9.1.0 ou superior somente) REPLICATION_APPLIER
ROLE_ADMIN SET_ANY_DEFINER (MySQL 8.2.0 ou superior somente)
SHOW_ROUTINE TRANSACTION_GTID_TAG (MySQL 8.3.0 ou superior somente)
VECTOR_STORE_LOAD_EXEC (MySQL 9.0.0 ou superior somente) XA_RECOVER_ADMIN

Tópicos Relacionados

Privilégios Concedidos no Esquema sys

Determinados privilégios são concedidos no esquema sys ao administrador do sistema de banco de dados.

Tabela 5-12 Privilégios Concedidos no Esquema sys

Privilégios Concedidos no Esquema sys
CREATE TEMPORARY TABLES

Tópicos Relacionados

Privilégios Revogados do Esquema mysql

Determinados privilégios são revogados do esquema mysql. Não é possível conceder esses privilégios a qualquer usuário do sistema de banco de dados.

Tabela 5-13 Privilégios Revogados do Esquema mysql

Tópicos Relacionados

Privilégios Revogados do Esquema mysql_audit

Determinados privilégios são revogados do esquema mysql_audit. Não é possível conceder esses privilégios a qualquer usuário do sistema de banco de dados.

Tabela 5-14 Privilégios Revogados do Esquema mysql_audit

Tópicos Relacionados

Privilégios Revogados do Esquema mysql_option

Em MySQL 9.1.0 ou superior, determinados privilégios são revogados do esquema mysql_option. Não é possível conceder esses privilégios a qualquer usuário do sistema de banco de dados.

Tabela 5-15 Privilégios Revogados do Esquema mysql_option

Tópicos Relacionados

Privilégios Revogados do Esquema mysql_rest_service_metadata

No MySQL 9.3.1 ou superior com o REST ativado, determinados privilégios são revogados do esquema mysql_rest_service_metadata. Não é possível conceder esses privilégios a qualquer usuário do sistema de banco de dados.

Tabela 5-16 Privilégios Revogados do Esquema mysql_rest_service_metadata

Privilégios Revogados do Esquema mysql_tasks

No MySQL 9.3.1 ou superior, determinados privilégios são revogados do esquema mysql_tasks. Não é possível conceder esses privilégios a qualquer usuário do sistema de banco de dados.

Tabela 5-17 Privilégios Revogados do Esquema mysql_tasks

Privilégios Revogados do Esquema sys

Determinados privilégios são revogados do esquema sys. Não é possível conceder esses privilégios a qualquer usuário do sistema de banco de dados.

Tabela 5-18 Privilégios Revogados do Esquema sys

Tópicos Relacionados

Atribuições Concedidas

Determinadas atribuições do usuário MySQL são concedidas ao administrador do sistema de banco de dados.

Tabela 5-19 Atribuições Concedidas

Atribuições Concedidas
administrator
A atribuição administrator contém todos os privilégios padrão do administrador do sistema de BD, exceto o privilégio PROXY em ``@``.
SHOW GRANTS FOR administrator \G
*************************** 1. row ***************************
Grants for administrator@%: 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 `administrator`@`%` WITH GRANT OPTION
*************************** 2. row ***************************
Grants for administrator@%: 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 `administrator`@`%` WITH GRANT OPTION
*************************** 3. row ***************************
Grants for administrator@%: 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 `administrator`@`%`
*************************** 4. row ***************************
Grants for administrator@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER, 
CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, 
EVENT, TRIGGER ON `mysql_audit`.* FROM `administrator`@`%`
*************************** 5. row ***************************
Grants for administrator@%: 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 `administrator`@`%`
*************************** 6. row ***************************
Grants for administrator@%: REVOKE CREATE, DROP, REFERENCES, INDEX, ALTER, 
CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, 
EVENT, TRIGGER ON `sys`.* FROM `administrator`@`%`
6 rows in set (0.00 sec)

Tópicos Relacionados

Criando Administradores Adicionais com um Cliente de Linha de Comando

Use um cliente de linha de comando, como MySQL Client ou MySQL Shell, para criar administradores adicionais do sistema de banco de dados.

  1. Conecte-se ao sistema de banco de dados com a credencial de um administrador de sistema de banco de dados usando um cliente de linha de comando, como cliente MySQL ou Shell MySQL.
  2. Execute o seguinte comando para criar outro administrador do sistema de BD:
    CREATE USER <admin_user_name> IDENTIFIED BY '<password>' DEFAULT ROLE 'administrator';
    GRANT PROXY ON ``@`` TO <admin_user_name> WITH GRANT OPTION; 
  3. (Opcional) Execute o seguinte comando para listar os privilégios concedidos à nova conta de usuário:
    SHOW GRANTS FOR <admin_user_name> \G
    A saída mostra:
    *************************** 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)
  4. (Opcional) Conecte-se ao sistema de banco de dados com a credencial do novo administrador usando um cliente de linha de comando e execute o seguinte para listar os privilégios:
    SHOW GRANTS \G
    A saída mostra:
    *************************** 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)