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

 

ロールとなる一部の権限の継承動作の変更

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 構文を使用するようにアプリケーションを変更する場合は、この句も指定する必要があります。この句は、これらの特定のロール専用です。

 参照