# Az - MySQL ポストエクスプロイテーション

{{#include ../../../banners/hacktricks-training.md}}

## MySQL データベース ポストエクスプロイテーション
MySQL データベースに関する詳細情報は以下を確認してください:

{{#ref}}
../az-services/az-mysql.md
{{#endref}}

### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`

この権限を持つことで、Azure の MySQL フレキシブル サーバ インスタンス内に新しいデータベースを作成できます。このアクション自体は既存のリソースを変更しませんが、過剰または不正なデータベースの作成はリソースの消費やサーバの悪用につながる可能性があります。
```bash
az mysql flexible-server db create \
--server-name <server_name> \
--resource-group <resource_group_name> \
--database-name <database_name>
```
### `Microsoft.DBforMySQL/flexibleServers/backups/write`

この権限を持つことで、Azure上のMySQL Flexible Serverインスタンスのバックアップ作成を開始できます。これにより、ユーザーは特定の時点でのデータを保存するためにオンデマンドバックアップを生成することができます。
```bash
az mysql flexible-server backup create \
--name <server_name> \
--resource-group <resource_group_name>
--backup-name <backup_name>
```
### `Microsoft.DBforMySQL/flexibleServers/advancedThreatProtectionSettings/write`

この権限を使用すると、Azure上のMySQL Flexible ServerインスタンスのAdvanced Threat Protection (ATP)設定を構成または更新できます。これにより、異常な活動や潜在的な脅威を検出し、対応するために設計されたセキュリティ機能を有効または無効にすることができます。
```bash
az mysql flexible-server threat-protection-policy update \
--name <server_name> \
--resource-group <resource_group_name> \
--state <Enabled|Disabled>
```
### `Microsoft.DBforMySQL/flexibleServers/firewallRules/write`

この権限を使用すると、Azure上のMySQL Flexible Serverインスタンスのファイアウォールルールを作成または変更できます。これにより、どのIPアドレスまたは範囲がサーバーにアクセスできるかを制御できます。この権限の不正または不適切な使用は、サーバーを望ましくないまたは悪意のあるアクセスにさらす可能性があります。
```bash
# Create Rule
az mysql flexible-server firewall-rule create \
--name <server_name> \
--resource-group <resource_group_name> \
--rule-name <rule_name> \
--start-ip-address <start_ip> \
--end-ip-address <end_ip>

# Update Rule
az mysql flexible-server firewall-rule update \
--name <server_name> \
--resource-group <resource_group_name> \
--rule-name <rule_name> \
--start-ip-address <start_ip> \
--end-ip-address <end_ip>
```
### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`

この権限を使用すると、Azure上のMySQL Flexible ServerインスタンスのGTID（グローバルトランザクション識別子）をリセットできます。GTIDをリセットすると、リセットアクションの前に取得されたすべての自動バックアップおよびオンデマンドバックアップ、地理的バックアップが無効になります。GTIDリセット後、選択したリストア時間がGTIDリセット時間より前の場合、最速リストアポイントまたはカスタムリストアポイントを使用してPITR（ポイントインタイムリストア）を実行することはできません。また、成功した地理的リストアは5日後にのみ可能です。
```bash
az mysql flexible-server reset-gtid \
--name  \
--resource-group <resource_group_name> \
--gtid-set <gtid>
```
### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`

この権限を使用すると、Azure上のMySQL Flexible Serverインスタンスの設定を更新できます。これにより、パフォーマンス調整、セキュリティ設定、または運用設定などのサーバーパラメータをカスタマイズできます。次のパラメータをバッチで一緒に更新できます: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, および max_connections。
```bash
az mysql flexible-server parameter set-batch \
--resource-group <resource_group_name> \
--server-name <server_name> \
--args max_connections=<value>
```
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`

この権限を使用すると、MySQL フレキシブル サーバーにユーザー割り当てのマネージド ID を割り当てることができます。
```bash
az mysql flexible-server identity assign \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--identity <IdentityName>
```
### `Microsoft.DBforMySQL/flexibleServers/stop/action`

この権限を使用すると、Azure上のPostgreSQL Flexible Serverインスタンスを停止できます。サーバーを停止すると、一時的なサービスの中断が発生し、データベースに依存するアプリケーションやユーザーに影響を与える可能性があります。
```bash
az mysql flexible-server stop \
--name <server_name> \
--resource-group <resource_group_name>
```

### `Microsoft.DBforMySQL/flexibleServers/start/action`
With this permission, you can start a stopped PostgreSQL Flexible Server instance on Azure. Starting a server restores its availability, enabling applications and users to reconnect and access the database.

```bash
az mysql flexible-server start \
--name <server_name> \
--resource-group <resource_group_name>
```

### `*/delete`

With this permissions you can delete resources related to mysql server in Azure such as server, firewalls, managed identities or configurations

{{#include ../../../banners/hacktricks-training.md}}
