データベースユーザ役割とパーミッション

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

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

あるパーミッションを拒否し、Plesk ユーザがこれを許可することを禁止することができます。

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

  

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

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

以下の表に、それぞれの役割に対するデフォルトの MySQL 権限のセットを示します。

権限 読取および書込 読取専用 書込専用

選択

+

+

-

挿入

+

-

+

更新

+

-

+

削除

+

-

+

作成

+

-

+

ドロップ

+

-

+

変更

+

-

+

索引

+

-

+

一時テーブルの作成

+

-

+

テーブルのロック

+

-

+

ビューの作成

+

-

+

ビューの表示

+

+

-

デフォルトの権限セットを変更するには、panel.ini ファイル(/usr/local/psa/admin/conf/panel.ini)を編集して、変更したいそれぞれの役割に対し、権限の名前の一覧を指定します。

Plesk ユーザに対して特定の権限を禁止しない限り(このページで後述)、panel.ini に指定されている権限以外の権限を Plesk が選択することができます。

例:

[databaseManagement] 
features.roles.mysql.readWrite = Select,Update,Insert
<code>features.roles.mysql.readOnly = Select</code>
<code>features.roles.mysql.writeOnly = Update</code>

注:ある役割(例えば「読取および書込」)の権限セットを変更しても、この役割を持つ既存の 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 データベースユーザの役割

Microsoft SQL Server を使用する Plesk で、ユーザは役割を選択できますが(読取および書込読取専用書込専用)、個別のパーミッションを追加/削除することはできません(SQL Server データベースレベルの役割)。パーミッションは Plesk UI に表示されません。

以下の表に、それぞれの役割に対するデフォルトの Microsoft SQL Server パーミッションを示します。

パーミッション 読取および書込 読取専用 書込専用

db_backupoperator

+

+

+

db_datareader

+

+

-

db_datawriter

+

-

+

db_ddladmin

+

-

+

任意の役割のデフォルトのパーミッションセットを変更するには、panel.ini ファイル(/<Plesk インストールディレクトリ>/admin/conf/panel.ini)を編集し、パーミッション名を一覧で指定します。

例:

[databaseManagement] 
features.roles.mssql.readWrite = db_datareader,db_backupoperator,db_ddladmin
features.roles.mssql.<code>readOnly </code>= db_datareader,db_backupoperator
features.roles.mssql.write<code>Only</code> = db_datawriter

注:ある役割のパーミッションセットを変更すると、既存のデータベースユーザのパーミッションが変更されます。この役割を持つ既存のユーザと新規作成されるユーザすべてが、panel.ini に指定したパーミッションを持つようになります。

  

Microsoft SQL Server ユーザをデフォルトのパーミッションに戻すには

それぞれのデータベースユーザの役割には、デフォルトのパーミッションセットがあります(SQL Server データベースレベルのユーザ役割)。既存のデータベースユーザのパーミッションを(役割に応じた)デフォルト値にリセットするには、以下のコマンドを実行します。

C:\Program Files\Parallels\Plesk\bin\repair.exe --update-mssql-users-permissions [-database-server <name>], [-database <name>]

注:ある役割(例えば「読取および書込」)のパーミッションを panel.ini で変更した場合、コマンド --update-mssql-users-permissions は、デフォルトセット(例えば「読取および書込」のデフォルトセットは「db_datareader,db_datawriter,db_backupoperator,db_ddladmin」)ではなく、指定したパーミッションのセットを使用します。