Plesk には、MySQL および Microsoft SQL Server データベースユーザ用のユーザ役割が用意されています。この役割は、データベースユーザにパーミッションを付与するためのテンプレートとして機能します。サポートされるデータベースユーザ役割には、読取および書込(デフォルト)、読取専用書込専用があります。それぞれの役割には権限のセットがあらかじめ定義されており、この役割を持つデータベースユーザアカウントに付与されます。役割に含まれる権限のセットは編集可能です。

さらに、MySQL ではカスタム役割がサポートされ、ユーザが権限セットを定義できます。SQL Server では、役割に付帯するパーミッションのセットをユーザが変更することはできません。

Plesk ユーザが付与できないように、特定のパーミッションを拒否することができます。

[ウェブサイトとドメイン] > [データベース] > [ユーザ管理]でデータベースユーザ用の役割を選択する方法は、「データベースユーザアカウントを管理する」を参照してください。管理者の契約のデータベースユーザには、データベーステーブルに対する権限に加え、グローバルな権限を付与することができます。

MySQL データベースユーザ役割

Plesk で MySQL を使用する場合、ユーザはデータベースユーザ用の役割を選択したり、個別の権限を追加・削除したりできます。

それぞれの役割に対するデフォルトの MySQL 権限のセットは以下のとおりです。

権限 読取および書込 読取専用 書込専用
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 データベースユーザの権限には影響を与えません。これらのデータベースユーザの役割は「カスタム」に自動的に変わります。

すべてのユーザに対して特定の権限を拒否するには

削除権限など、特定の権限をすべてのデータベースユーザに対して拒否したい場合があります。権限を拒否するには、panel.ini ファイルに MySQL 権限を列挙して、拒否する権限をそこから除外します。

例:

[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 に指定された権限セットを使用するようになります。