指定されたシステム権限、システムロール、ユーザ定義ロール、またはユーザ名に付与されたすべてのロールを返すか、またはロールの階層ツリー全体を表示します。
sp_displayroles( user_role_name , display_mode , grant_type )
user_role_name システム権限、システムロール、ユーザ定義ロールの名前、またはユーザ名を指定する CHAR(128) パラメータ。指定されていない場合または NULL の場合、デフォルトで現在のユーザが使用されます。
display_mode user_role_name に対する親レベルまたは子レベルを指定する VARCHAR(30) パラメータ。display_mode が指定されていない場合、または NULL の場合、明示的に付与されたロールと権限 (継承されたロールまたは権限) のみが返されます。display_mode で使用できる値には次のものがあります。
expand_up user_role_name の親階層ツリーの user_role_name に付与されているシステムロールを表示します。
expand_down user_role_name の子レベルのロール階層ツリーを含む、user_role_name に付与されているシステムロールと権限を表示します。
grant_type 返される付与のタイプを制御する VARCHAR(30) パラメータ。指定されない場合、デフォルトで ALL が使用されます。grant_type で使用できる値には次のものがあります。
NO_ADMIN WITH NO ADMIN OPTION 句または WITH ADMIN OPTION 句とともに user_role_name に付与されているすべてのロールとシステム権限を表示します。
ADMIN WITH NO ADMIN OPTION 句または WITH ADMIN ONLY OPTION 句とともに user_role_name に付与されているすべてのロールとシステム権限を返します。
ALL user_role_name に付与されているすべてのロールと権限を表示します。
カラム名 | データ型 | 説明 |
---|---|---|
role_name | CHAR(128) | user_role_name に付与されているロールまたはシステム権限。 |
parent_role_name | CHAR(128) | user_role_name の親のロール名。 |
grant_type | CHAR(10) | user_role_name に管理権限があるかどうかに関する情報。考えられる値は、次のとおりです。NO ADMIN、ADMIN、または ADMIN ONLY。 |
role_level | SMALLINT |
expand_down モードの場合直接付与されるロールの場合はレベル 1、その下のレベルに付与されるロールのレベルは 2、以下同様です。 expand_up モードの場合user_role_name が付与されているロールのレベルは 0、1 つ上の階層のレベルは -1、以下同様です。 |
システム権限については、システム権限ロール名ではなくシステム権限名が結果に表示されます。expand_down モードでは、レベル 1 (直接付与されたロール) で parent_role_name が NULL となります。デフォルトモードでは、直接付与されたロールのみが表示されるため、role_level カラムが 1 で parent_role_name が NULL となります。
このプロシージャを expand_up モードのユーザで使用した場合、そのユーザはどのロール階層でもトップレベルにないため、結果が返されません。同様に、このプロシージャを expand_down モードの不変のシステム権限で使用した場合、不変のシステム権限はどのロール階層でも最下位にあるため、結果が返されません。デフォルトモードでは、直接付与されたロールとシステム権限のみが表示されます。
SQL/2008 ベンダー拡張。
このプロシージャを自分自身に実行する場合、権限は不要です。ただし、別のユーザ ID またはロールのシステム権限またはロールを返すには、MANAGE ROLES システム権限が必要です。
なし
次の文は、コマンドを発行したユーザに付与されているすべてのロールを返します。
CALL sp_displayroles(); |
この例では、SYS_SPATIAL_ADMIN_ROLE システムロールに付与されているシステム権限のリストが返されます。
CALL sp_displayroles( 'SYS_SPATIAL_ADMIN_ROLE' ); |
role_name | parent_role_name | grant_type | role_level |
---|---|---|---|
PUBLIC | (NULL) | NO ADMIN | 1 |
MANAGE ANY SPATIAL OBJECT | (NULL) | NO ADMIN | 1 |
この例では、SYS_SPATIAL_ADMIN_ROLE に付与されているシステム権限のリストが、ロール階層でその上にあるすべてのロールも含めて返されます。
CALL sp_displayroles( 'SYS_SPATIAL_ADMIN_ROLE', 'expand_up'); |
role_name | parent_role_name | grant_type | role_level |
---|---|---|---|
SYS_AUTH_DBA_ROLE | dbo | ADMIN | -3 |
SYS_AUTH_DBA_ROLE | SYS_RUN_REPLICATION_ROLE | ADMIN | -3 |
SYS_AUTH_SSO_ROLE | SYS_AUTH_DBA_ROLE | ADMIN | -2 |
MANAGE ROLES | SYS_AUTH_SSO_ROLE | ADMIN | -1 |
MANAGE ROLES | SYS_REPLICATION_ADMIN_ROLE | NO ADMIN | -1 |
SYS_SPATIAL_ADMIN_ROLE | MANAGE ROLES | ADMIN ONLY | 0 |
次の文は、ユーザ User1 に付与されているすべてのシステム権限を返します。
CALL sp_displayroles( 'User1' ); |
この例では、ビューに関連するシステム権限のリストが返されます。
SELECT sys_priv_name FROM sp_sys_priv_role_info() WHERE sys_priv_name LIKE '%VIEW%' |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |