Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ データベース管理 » ユーザとデータベースのセキュリティ » ユーザのセキュリティ (ロールと権限)

 

グループ

グループとは、グループ内の他のすべてのユーザに共通のロールおよび権限のセットを所有するユーザのセットです。

グループは、ユーザセットのロールおよび権限を維持するための効率的な方法です。

また、オブジェクトを所有するグループでのメンバーシップは、グループが所有するプロシージャを実行したり、グループが所有するテーブルにクエリしたりといった操作を実行するときに、ユーザがオブジェクト名を修飾する必要がないことを意味します。たとえば、MyData という名前のテーブルが、ユーザ ID M_Haneef 画面バーになっている PersonnelData というグループによって所有されている場合、M_Haneef は PersonnelData.MyData ではなく MyData としてクエリでテーブルを参照できます。ユーザが、グループの所有するテーブルと同じ名前のテーブルを所有している場合、データベースサーバはグループが所有するテーブルではなく、ユーザが所有するテーブルを使用します。ユーザが同じ名前のテーブルを所有する複数のグループに属している場合、そのユーザはテーブル名を修飾する必要があります。

SQL Anywhere では、グループはデータベースオブジェクトではありません。代わりに、グループは次の 2 つのアプローチのいずれかにより、ユーザ定義ロールを使用して実現されます。

  • グループ作成のためのユーザ拡張ロールアプローチ   ユーザ拡張ロールは、既存のユーザ ID がロールになるように拡張することで作成されたユーザ定義ロールです。このグループ作成のためのアプローチでは、ユーザ ID が作成され、その後グループに必要なすべてのロールと権限が付与されます。ユーザ ID はユーザ拡張ロールに変換され、さらに必要とするユーザに付与されます。これらのステップが発生する順序は、当然ながら異なる可能性があります。

    ロールに拡張されたユーザもログイン機能を持つため、このアプローチは、レプリケーション目的のグループを作成するときに共通です。

    SQL Anywhere の以前のバージョンのユーザの場合、このアプローチは、ユーザに GROUP を付与し、さらに他のユーザに MEMBERSHIP IN GROUP を付与する廃止予定の GRANT 文アプローチと同じです。

    このアプローチを使用して作成したグループを削除するには、ユーザ拡張ロールを通常のユーザに戻します (DROP ROLE FROM USER userid)。オブジェクトの所有権は、通常のユーザに戻されるユーザに留まります。

    ユーザ拡張ロールアプローチを使用するとき、グループおよびそのメンバーの情報は、SYSROLEGRANTS 統合ビューまたは SYSGROUPS 互換ビューからクエリされる可能性があります。

  • グループ作成のためのスタンドアロンロールアプローチ   スタンドアロンロールとは、ユーザ ID には関連付けられていないユーザ定義ロールです。このグループ作成のためのアプローチでは、ロールが作成され、その後ユーザの定義済みセットに必要なすべてのロールおよび権限が付与されます。さらに、ロールは必要とするユーザに付与されます。

    スタンドアロンアプローチを使用して作成されたグループを削除するには、ロールを削除します。オプションで、ロールを削除するときに、同時にロールが所有するオブジェクトも削除できます。

    スタンドアロンロールアプローチが使用されているとき、グループとそのメンバー情報に SYSGROUPS 互換ビューからクエリすることはできません。代わりに、SYSROLEGRANTS 統合ビューからクエリできます。

いずれのアプローチの場合も、グループメンバーの権限の管理は、各ユーザ ID のレベルではなく、ユーザ定義ロールレベルで行われます。

 2 つのアプローチの例
 参照