データベース レベル アクセス権、Connect、Resource、および DBA という 3 つのアクセス権は、同心円状の階層構造をしており、この順でデータベースのアクセスおよび制御に関する権限力が強くなります。データベース レベルのアクセス権の付与、または取消しを実行できるのは、DBA アクセス権を持つユーザのみです。
Database-Level Privileges |--+-DBA------+-------------------------------------------------| +-RESOURCE-+ '-CONNECT--'
アクセス権は階層構造になっているため、DBA アクセス権を持つユーザの Resource アクセス権または Connect アクセス権のいずれかを取り消しても、この文は何の影響も与えません。(アクセス権の階層構造については、このセクションで後述するアクセス権の定義で簡単に説明します。) DBA アクセス権を所有するユーザの DBA アクセス権を取り消しても、そのユーザのデータベースに対する Connect アクセス権はそのまま残ります。DBA アクセス権または Resource アクセス権を持つユーザがデータベースにアクセスするのを拒否するには、まず最初に DBA アクセス権、または Resource アクセス権を取り消し、次に別の REVOKE 文で Connect アクセス権を取り消します。
同様に、Resource を持つユーザの Connect アクセス権を取り消す場合は、その文は無効です。ユーザの Resource アクセス権を取り消しても、そのユーザはデータベースに対する Connect アクセス権を失いません。
データベース レベル アクセス権を保持できるのは、ユーザまたは PUBLIC のみです。ロールは、データベース レベル アクセス権を保持できないため、ロールからこれらのアクセス権を取り消すことができません。
アクセス権 | 効果 |
---|---|
DBA | Resource アクセス権のすべての機能を持ち、次の操作を実行できます。
|
RESOURCE | データベース構造を拡張できます。Resource アクセス権の所有者は、Connect アクセス権の機能に加えて、次の操作を実行できます。
|
CONNECT | このアクセス権を所有している場合は、データの問合せおよび変更を実行できます。また、変更しようとしているデータベース オブジェクトの所有者であれば、データベース スキーマを変更できます。Connect アクセス権を保有するユーザであれば、次の操作を実行できます。
|
ヒント: データベースに対する DBA アクセス権を持っているユーザを判別するには、次の問合せを DB-Access またはご使用のアプリケーションから実行します。
select username,usertype from sysusers;
出力には、ユーザ名 (例えば、public や informix)、およびそれに続いて次のコードのうちの 1 つが表示されます。