

# Segurança do MariaDB no Amazon RDS
<a name="MariaDB.Concepts.UsersAndPrivileges"></a>

A segurança de instâncias de banco de dados do MariaDB é gerenciada em três níveis:
+ AWS Identity and Access ManagementO controla quem pode executar ações de gerenciamento do Amazon RDS em instâncias de banco de dados. Ao se conectar à AWS usando credenciais do IAM, sua conta do IAM deve ter políticas do IAM que concedam as permissões necessárias para executar operações de gerenciamento do Amazon RDS. Para obter mais informações, consulte [Gerenciamento de identidade e acesso no Amazon RDS](UsingWithRDS.IAM.md).
+ Quando você cria uma instância de banco de dados, é necessário usar um grupo de segurança da VPC para controlar quais dispositivos e instâncias do Amazon EC2 podem abrir conexões com o endpoint e a porta da instância de banco de dados. É possível estabelecer essas conexões usando o Transport Layer Security (TLS) e o Secure Sockets Layer (SSL). Além disso, as regras de firewall em sua empresa podem controlar se dispositivos sendo executados nela podem abrir conexões na instância de banco de dados.
+ Uma vez que uma conexão foi aberta em uma instância de banco de dados do MariaDB, a autenticação do login e as permissões são aplicadas da mesma forma que em uma instância autônoma do MariaDB. Comandos, como `CREATE USER`, `RENAME USER`, `GRANT`, `REVOKE` e `SET PASSWORD` funcionam exatamente como em bancos de dados autônomos, assim como modificando diretamente tabelas de esquema de banco de dados.

 Quando você cria uma instância de banco de dados do Amazon RDS, o usuário mestre apresenta os seguintes privilégios padrão: 
+  `alter` 
+  `alter routine` 
+  `create` 
+  `create routine` 
+  `create temporary tables` 
+  `create user` 
+  `create view` 
+  `delete` 
+  `drop` 
+  `event` 
+  `execute` 
+  `grant option` 
+  `index` 
+  `insert` 
+  `lock tables` 
+  `process` 
+  `references` 
+  `reload` 

  Esse privilégio é limitado em instâncias de banco de dados MariaDB. Ele não concede acesso às operações `FLUSH LOGS` e `FLUSH TABLES WITH READ LOCK`.
+  `replication client` 
+  `replication slave` 
+  `select` 
+  `show create routine` 

  Esse privilégio é válido somente em instâncias de banco de dados do MariaDB que executam a versão 11.4 e posterior.
+  `show databases` 
+  `show view` 
+  `trigger` 
+  `update` 

Para obter mais informações sobre esses privilégios, consulte [Gerenciamento da conta de usuário](http://mariadb.com/kb/en/mariadb/grant/) na documentação do MariaDB.

**nota**  
Embora você possa excluir o usuário mestre em uma instância de banco de dados, não recomendamos fazer isso. Para recriar o usuário mestre, use a API `ModifyDBInstance` ou o `modify-db-instance` AWS CLI e especifique uma nova senha de usuário mestre com o parâmetro apropriado. Se o usuário mestre não existir na instância, ele será criado com a senha especificada. 

Para fornecer serviços de gerenciamento para cada instância de banco de dados, o usuário `rdsadmin` é criado quando a instância de banco de dados é criada. Tentar descartar, renomear ou alterar a senha, ou alterar os privilégios, para a conta `rdsadmin` resulta em um erro.

A partir do RDS para MariaDB versão 12.3, `rdsproxyadmin` também é um usuário reservado. O Amazon RDS cria esse usuário na primeira vez que você registra uma instância de banco de dados como destino para um proxy. A tentativa de criar, excluir, renomear ou modificar a conta `rdsproxyadmin` em qualquer host resulta em um erro semelhante ao seguinte:

```
mysql> DROP USER 'rdsproxyadmin'@'%';
ERROR 1396 (HY000): Operation DROP USER failed for 'rdsproxyadmin'@'%'

mysql> DROP USER 'rdsproxyadmin'@'{{host}}';
ERROR 1396 (HY000): Operation DROP USER failed for 'rdsproxyadmin'@'{{host}}'
```

Para ter mais informações sobre o monitoramento de usuário do RDS Proxy, consulte [Amazon RDS Proxy](rds-proxy.md).

O usuário `rdsrepladmin`, que o Amazon RDS usa para replicação, também é um usuário reservado. A partir do RDS para MariaDB versão 12.3, você não pode excluir essa conta em nenhum host.

```
mysql> DROP USER 'rdsrepladmin'@'{{host}}';
ERROR 1396 (HY000): Operation DROP USER failed for 'rdsrepladmin'@'{{host}}'
```

Para permitir o gerenciamento da instância de banco de dados, os comandos `kill` e `kill_query` padrão foram restritos. Os comandos do Amazon RDS `mysql.rds_kill`, `mysql.rds_kill_query` e `mysql.rds_kill_query_id` são fornecidos para uso no MariaDB e também no MySQL para seja possível encerrar sessões ou consultas de usuários em instâncias de banco de dados. 