Gerenciando usuários, funções e privilégios

MySQL usa um sistema de funções para gerenciar permissões de banco de dados. Crie usuários a partir da interface do usuário e do Shell d MySQL. Os usuários criados a partir da interface do usuário têm privilégios quase idênticos aos admin, mas não podem criar outros usuários. Como admin possui as opções GRANT e CREATE USER, ele pode criar um usuário e conceder a ele todos os privilégios que possui, incluindo o privilégio de criar novos usuários.

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;
+-----------------------------+
| GRANTEE                     |
+-----------------------------+
| 'ibm'@'localhost'           |
| 'mysql.session'@'localhost' |
| 'mysql.sys'@'localhost'     |
| 'ibm-backup'@'localhost'    |
| 'admin'@'%'                 |
| 'ibm-replication'@'%'       |
| 'ibm-monitor'@'%'           |
+-----------------------------+
+-----------------+
| user            |
+-----------------+
| admin           |
| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |
| mysql.session   |
| mysql.sys       |
+-----------------+

Os usuários abaixo são mantidos pelo IBM Cloud e não devem ser alterados ou excluídos:


| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |

Quando você provisiona uma nova implantação no IBM Cloud, você recebe automaticamente um admin usuário para acessar e gerenciar MySQL.

Adicione usuários na interface do usuário em credenciais de serviço, com o plug-in Cloud Databases CLI ou com a API Cloud Databases.

Comandos de gerenciamento de usuários..

Por motivos de segurança, não se recomenda a execução de consultas DML (linguagem de manipulação de dados) na tabela do mysql.user. Para evitar que a tabela do mysql.user seja alterada, o gerenciamento de usuários deve ser feito por meio de consultas DML.

Gerenciar usuários usando comandos como CREATE USER, ALTER USER, RENAME USER e DROP USER.

É possível usar o comando a seguir para extrair uma lista de usuários com suas informações de hosts, mas sem as informações de autenticação e hashes de senha:

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;

O usuário admin

Ao fornecer uma nova implementação no IBM Cloud, você automaticamente recebe um usuário administrativo, que pode acessar e gerenciar o MySQL. Após configurar a senha do administrador, use-a para se conectar à sua implementação.

Quando admin cria um recurso em um banco de dados, como uma tabela, admin torna-se proprietário desse objeto. Os usuários criados a partir da interface do usuário têm permissões para *.*, o que significa que qualquer usuário recém-criado pode ver qualquer banco de dados automaticamente. Use o comando MySQL ou modifique as permissões de um usuário criado pela interface do usuário para restringir o acesso. Para limitar as permissões, remova os privilégios globais, se ativados, e conceda privilégios para um determinado banco de dados ou conjunto de bancos de dados aos quais um usuário deve ter acesso.

Configure a senha do administrador antes de usá-la para se conectar

Configuração da senha de administrador na interface do usuário

Defina sua senha de administrador por meio da interface do usuário, selecionando sua instância na lista de recursos no painel IBM Cloud. Em seguida, selecione Configurações.. Em seguida, selecione Change Database Admin Password (Alterar senha de administrador do banco de dados ).

Configuração da senha de administrador na CLI

Use o comando cdb user-password do plug-in IBM Cloud CLI Cloud Databases para configurar a senha do administrador.

Por exemplo, para definir a senha de administrador para uma implantação chamada example-deployment, use o seguinte comando:

ibmcloud cdb user-password example-deployment admin <newpassword>

Definindo a senha de administrador na API

O Endpoint da Fundação, exibido na seção Detalhes da implantação do painel Visão geral do seu serviço, fornece o end URL e para acessar essa implantação por meio da API. Use-o com o terminal Configurar a senha do usuário especificado para configurar a senha do administrador

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

Outros usuários ibm

As contas ibm e ibm-replication são os únicos superusuários em sua implementação. Uma conta de superusuário não está disponível para você usar. Esses usuários são contas administrativas internas que gerenciam a replicação, as métricas e outras funções que asseguram a estabilidade de sua implementação.

Usuários criados com mysql

É possível ignorar completamente a criação de usuários por meio do IBM Cloud e criar os usuários diretamente no MySQL com mysql. Isso permite acessar o MySQL e utilizar seus recursos nativos de gerenciamento de funções e usuários. Os usuários/funções criados em mysql devem ter todos os seus privilégios definidos manualmente, bem como os privilégios para os objetos que criam.

Os usuários criados diretamente no MySQL não aparecem em Credenciais de serviço, mas você pode incluí-los se quiser.

Observe que esses usuários não estão integrados aos controles do IAM, mesmo se adicionados às Credenciais de serviço.

Acesso do usuário às tabelas

Embora não seja possível excluir o mysql database, os usuários podem descartar tabelas, incluindo a tabela do mysql.users que contém usuários internos. Os clientes não devem excluir nenhuma tabela pertencente ao mysql database, uma vez que essa ação pode resultar na quebra da formação, o que só pode ser resolvido por meio de uma recuperação point-in-time (PITR).

IBM Cloud não alerta sobre a quebra da formação devido a uma tabela do sistema excluída por um cliente.

Mais usuários e sequências de conexões

O acesso à sua implementação do Databases for MySQL não é limitado ao usuário administrativo. Você pode criar usuários usando o painel Credenciais de Serviço, a CLI do IBM ou por meio da API do IBM Cloud Databases.

Todos os usuários em sua implementação podem usar as sequências de conexões, incluindo sequências de conexões para terminais públicos ou privados.

Quando você criar um usuário, ele será designado com determinadas funções e privilégios do banco de dados. Esses privilégios incluem a capacidade de efetuar login, criar bancos de dados e criar outros usuários. Para obter mais informações, consulte a página Gerenciando usuários, funções e privilégios.

Criando usuários em Credenciais de serviço

  1. Navegue até o painel de serviço para o seu serviço.
  2. Clique em Credenciais de Serviço para abrir o painel Credenciais de Serviço.
  3. Clique em Nova credencial.
  4. Escolha um nome descritivo para a sua nova credencial.
  5. (Opcional) Especifique se as novas credenciais devem usar um terminal público ou privado. Use { "service-endpoints": "public" } / { "service-endpoints": "private" } no campo Incluir Parâmetros de Configuração Sequencial para gerar sequências de conexão usando o terminal especificado. O uso do terminal não é cumprido. Ele apenas controla quais nomes do host estão nas sequências de conexões. Os terminais públicos são gerados por padrão.
  6. Clique em Incluir para provisionar as novas credenciais. Automaticamente, serão gerados nome de usuário e senha e um usuário de banco de dados associado no banco de dados do MySQL.

As novas credenciais aparecem na tabela, e as sequências de conexão estarão disponíveis como JSON em um campo click-to-copy sob Visualizar Credenciais.

Criando usuários por meio da linha de comandos

Se você gerenciar o seu serviço por meio da CLI da IBM Cloud e do plug-in de bancos de dados em nuvem, será possível criar um novo usuário com cdb user-create. Por exemplo, para criar um novo usuário para uma "implementação de exemplo", use o comando a seguir.

ibmcloud cdb user-create example-deployment <newusername> <newpassword>

Assim que a tarefa for concluída, será possível recuperar as novas sequências de conexões do usuário com o comando ibmcloud cdb deployment-connections.

Criando usuários por meio da API

O Terminal de Base que é mostrado em Detalhes da implementação do painel Visão geral de seu serviço fornece a URL base para acessar esta implementação por meio da API. Para criar e gerenciar usuários, use a URL base com o terminal /users.

curl -X POST 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/users' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"username":"jane_smith", "password":"newsupersecurepassword"}'

Depois que a tarefa for concluída, será possível recuperar as novas sequências de conexões do usuário por meio do terminal /users/{userid}/connections.

Incluindo usuários em Credenciais de serviço

A criação de um novo usuário da CLI não preenche automaticamente as sequências de conexão desse usuário nas Credenciais de serviço. Se você desejar inclui-las lá, será possível criar uma nova credencial com as informações do usuário existentes.

Insira o nome de usuário e a senha no campo JSON Incluir parâmetros de configuração embutidos ou especifique um arquivo onde as informações JSON são armazenadas. Por exemplo, colocar {"existing_credentials":{"username":"Robert","password":"supersecure"}} no campo gera Credenciais de serviço com o nome de usuário "Robert" e a senha "superseguro" preenchidos nas sequências de conexão.

A geração de credenciais de um usuário existente não verifica ou cria esse usuário.