16.0 より前のバージョンのデータベースでは、DBA、REMOTE DBA、BACKUP、RESOURCE AND VALIDATE の各権限をグループに付与した場合に、基本となるパーミッションはグループのメンバーに継承されませんでした。
16.0 以降では、あらゆるロール (SYS_AUTH_DBA_ROLE、SYS_RUN_REPLICATION_ROLE、SYS_AUTH_BACKUP_ROLE、SYS_AUTH_RESOURCE_ROLE、および SYS_AUTH_VALIDATE_ROLE を含む) をユーザ定義ロールに付与したときに、デフォルトの動作として、ユーザ定義ロールを付与されたユーザが、このロールの基本となるシステム権限を継承します。
たとえあ、userA というユーザがいるとします。この userA に ALTER ANY OBJECT システム権限を付与します。そして、userA がロールになるように拡張することにし、userA を userB に付与します。そして、SYS_AUTH_DBA_ROLE システムロールを userA に付与したいのですが、userB には、SYS_AUTH_DBA_ROLE システムロールで与えられる権限の一部を継承させたくありません。そこで、次のように SYS_AUTH_DBA_ROLE システムロールを付与します。
GRANT ROLE SYS_AUTH_DBA_ROLE TO userA WITH NO SYSTEM PRIVILEGE INHERITANCE; |
このシナリオでは、userB は ALTER ANY OBJECT システム権限のみを userA から継承します。
アップグレード時に、これらのロールの非継承動作を保持するために、SQL Anywhere では、GRANT ROLE 文に WITH NO SYSTEM PRIVILEGE INHERITANCE 句が含まれています。同様に、新しい GRANT 構文を使用するようにアプリケーションを変更する場合は、この句も指定する必要があります。この句は、これらの特定のロール専用です。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |