データベースユーザ役割とパーミッション
Plesk には、MySQL/MariaDB および Microsoft SQL Server データベースユーザ用のユーザ役割が用意されています。この役割は、データベースユーザにパーミッションを付与するためのテンプレート*として機能します。サポートされるデータベースユーザ役割には、**読取および書込*(デフォルト)、読取専用、書込専用があります。それぞれの役割には権限のセットがあらかじめ定義されており、この役割を持つデータベースユーザアカウントに付与されます。役割に含まれる権限のセットは編集可能です。
さらに、MySQL/MariaDB ではカスタム役割がサポートされ、ユーザが権限セットを定義できます。SQL Server では、役割に付帯するパーミッションのセットをユーザが変更することはできません。
Plesk ユーザが付与できないように、特定のパーミッションを拒否することができます。
[ウェブサイトとドメイン] > [データベース] > [ユーザ管理]でデータベースユーザ用の役割を選択する方法は、「データベースユーザアカウントを管理する」を参照してください。管理者の契約のデータベースユーザには、データベーステーブルに対する権限に加え、グローバルな権限を付与することができます。
MySQL/MariaDB データベースユーザ役割
Plesk で MySQL/MariaDB を使用する場合、ユーザはデータベースユーザ用の役割を選択したり、個別の権限を追加・削除したりできます。
それぞれの役割に対するデフォルトの MySQL/MariaDB 権限のセットは以下のとおりです。
権限 | 読取および書込 | 読取専用 | 書込専用 |
---|---|---|---|
Select | ➕ | ➕ | ➖ |
Insert | ➕ | ➖ | ➕ |
Update | ➕ | ➖ | ➕ |
Delete | ➕ | ➖ | ➕ |
Create | ➕ | ➖ | ➕ |
Drop | ➕ | ➖ | ➕ |
Alter | ➕ | ➖ | ➕ |
Index | ➕ | ➖ | ➕ |
Create Temporary Tables | ➕ | ➖ | ➕ |
Lock Tables | ➕ | ➖ | ➕ |
Create View | ➕ | ➖ | ➕ |
Show View | ➕ | ➕ | ➖ |
デフォルトの権限セットを変更するには、panel.ini ファイルを編集して、変更する役割に権限名を列挙します。
ただし、特定の権限を禁止しない限り、Plesk 顧客は引き続き panel.ini
に指定されていない権限を選択することができます(詳しくは後で説明します)。
例:
[databaseManagement]
features.roles.mysql.readWrite = Select,Update,Insert
features.roles.mysql.readOnly = Select
features.roles.mysql.writeOnly = Update
注釈: ある役割の権限セット(たとえば「読取および書込」)に変更を加えても、この役割を持つ既存の MySQL/MariaDB データベースユーザの権限には影響を与えません。これらのデータベースユーザの役割は「カスタム」に自動的に変わります。
すべてのユーザに対して特定の権限を拒否するには
削除権限など、特定の権限をすべてのデータベースユーザに対して拒否したい場合があります。権限を拒否するには、panel.ini ファイルに MySQL/MariaDB 権限を列挙して、拒否する権限をそこから除外します。
例:
[databaseManagement]
features.privileges.mysql.dataAccess = Select, Insert, Update, Delete
features.privileges.mysql.structureAccess = Create, Drop, Alter, Index, Create Temporary Tables, Lock Tables, Create View, Show View
ここで指定した権限は、Plesk UI の[ウェブサイトとドメイン] > [データベース] > [ユーザ管理]に表示されます。また、ユーザが付与したり取り消したりできるのは、ここで指定した権限のみです。このリストに特定の権限が含まれない場合、Plesk はこの権限がデータベースユーザに対して拒否されているとみなします。
注釈: 権限が拒否されるのは、データベースユーザ設定に加えた変更を Plesk ユーザが保存した後です([ウェブサイトとドメイン] > [データベース] > [ユーザ管理]で、ユーザ名をクリックし、[OK]をクリックします)。
Microsoft SQL Server データベースユーザの役割
Plesk で Microsoft SQL Server を使用する場合、ユーザは役割(読取および書込、読取専用、書込専用)を選択できますが、権限(SQL Server データベースレベルのロール)を個別に追加・削除することはできません。権限は Plesk UI に表示されません。
それぞれの役割に対するデフォルトの Microsoft SQL Server 権限は以下のとおりです。
パーミッション | 読取および書込 | 読取専用 | 書込専用 |
---|---|---|---|
db_backupoperator | ➕ | ➕ | ➕ |
db_datareader | ➕ | ➕ | ➖ |
db_datawriter | ➕ | ➖ | ➕ |
db_ddladmin | ➕ | ➖ | ➕ |
任意の役割のデフォルト権限セットを変更するには、panel.ini ファイルを編集して、権限名を列挙します。
例:
[databaseManagement]
features.roles.mssql.readWrite = db_datareader,db_backupoperator,db_ddladmin
features.roles.mssql.readOnly = db_datareader,db_backupoperator
features.roles.mssql.writeOnly = db_datawriter
注釈: ある役割の権限セットを変更すると、既存のデータベースユーザの権限が変更されます。この役割を持つすべての既存ユーザおよび新規作成されるユーザが、panel.ini
に指定した権限を持つようになります。
Microsoft SQL Server ユーザをデフォルトの権限に戻すには
それぞれのデータベースユーザの役割は、デフォルトの権限セットを持ちます(SQL Server データベースレベルのユーザ役割)。既存のデータベースユーザの権限を(役割に応じた)デフォルト値にリセットするには、以下のコマンドを実行します。
%plesk_dir%bin\repair.exe --update-mssql-users-permissions [-database-server <name>] [-database-name <name>]
注釈: ある役割(例:「読取および書込」)のパーミッションを panel.ini
で変更すると、コマンド --update-mssql-users-permissions
は、デフォルト権限セット(例:「読取および書込」のデフォルト権限セットは「db_datareader,db_datawriter,db_backupoperator,db_ddladmin
」)ではなく、panel.ini に指定された権限セットを使用するようになります。