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 サーバ データベース管理 » ユーザとデータベースのセキュリティ » ユーザのセキュリティ (ロールと権限) » ユーザ

 

ユーザまたはロールのロールと権限を表示する (SQL の場合)

継承しているロールを含むロールと権限を表示します。また、このタスクを利用して、指定したロールのロールと権限も表示できます。

前提条件

  • 「sp_displayroles システムプロシージャ」:このプロシージャを自分自身に実行する場合、権限は不要です。ただし、別のユーザ ID またはロールのシステム権限またはロールを返すには、MANAGE ROLES システム権限が必要です。

  • 「sp_objectpermission システム権限」:このプロシージャを、自分自身または自分が所有するオブジェクトに実行する場合、権限は不要です。ただし、このプロシージャを別のユーザ ID、または別のユーザ ID が所有するオブジェクトに対して呼び出す場合は、MANAGE ANY OBJECT PRIVILEGE システム権限が必要です。

 ♦ タスク
  1. データベースに接続します。

  2. ユーザの持つロールおよびシステム権限を表示するには、sp_displayroles システムプロシージャを呼び出す次のような文を実行します。ここで、userid はユーザのユーザ ID です。

    SELECT * FROM sp_displayroles( 'userid', 'expand_down');
  3. ユーザの持つオブジェクトレベル権限を表示するには、sp_objectpermission を呼び出す次のような文を実行します。

    SELECT * FROM sp_objectpermission('userid');

結果

sp_displayroles の結果の role_name カラムには、ユーザに明示的に付与されたロールやシステム権限だけでなく、継承したものも含まれます。ロールやシステム権限が別のロールから継承されている場合、そのロールの名前は parent_role_name カラムに表示されます。grant_type カラムでは、ロールまたはシステム権限に対してユーザが管理権限を持っているかどうかがわかります。role_level カラムは、別のロールのメンバーであるロールのメンバーになることで継承が発生することがあるため、継承の階層を伝えます。このことは、ユーザからロールまたは権限を取り消そうとしても、そのユーザが依然としてロールや権限を使用できることがわかったときのトラブルシューティングに役立ちます。

sp_objectpermission の結果には、ユーザに明示的に付与された権限だけでなく、継承されたオブジェクトレベル権限も含まれます。被付与者カラムを使用して、オブジェクトレベル権限の継承元を理解します。付与者カラムでは、実際の付与を行った人がわかります。付与可能カラムでは、権限に対してユーザが管理権限を持っているかどうかがわかります。

 参照