参照GRANTユーザーに対して、指定したデータベースオブジェクトの特権を与えます。SQL,DSQL,isqlで使用できます。DSQLで使用する場合、終端文字のセミコロンは不要です。isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端文字は必要です。与える特権の名前です。REFERENCESを指定できます。与えられた特権が当てはまる列を指定します。特権を与える対象となる既存のテーブル名です。特権を与える対象となる既存のビュー名です。UNIX系のシステムにおいて、/etc/groupで定義されたグループ名です。既存のプロシージャ、トリガ、ビューの名前です。PUBLICを指定すると、すべてに対して特権を与えます。作成したロール名です。より他ユーザーへ与えることが出来る権限を与えます。作成された、既存のロール名です。rolenameのロールが与えられるユーザーです。セキュリティデータベースに登録してある必要があります。指定すると、role_grantee_listのロールに、GRANTを行う特権を与えます。より、データベースオブジェクトに対する特権とロールを、指定したユーザー、ロール、または他のデータベースオブジェクトに対し与えることが出来ます。オブジェクトを作成した直後には、作成者のみがすべての特権を持っており、その作成者のみが他のユーザーやオブジェクトに対して特権を与えることが出来ます。次表に、使用可能な特権に関してまとめました。テーブルまたはビューに対して、行の検索が可能です。テーブルまたはビューに対して、行の削除が可能です。テーブルまたはビューに対して、行の追加が可能です。テーブルまたはビューに対して、行の列値を変更可能です。列指定を行うことにより、変更できる列を制限することが出来ます。ストアドプロシージャを実行することが出来ます。指定した列を外部キーで参照することが出来ます。列の指定を行わなかった場合、すべてのプライマリーキー(主キー)に対する特権が与えられます。指定を行う場合は、同様にすべてのプライマリーキーを指定しなければなりません。特権をすべて持っている場合と同じになります。特権を持っている必要があります。よりロールを作成してください。よりグループのユーザーをそのロールに割当ててください。この場合、ユーザーがその特権を持った状態で接続を行いたいときには、同時にロールの指定が必要となります。UNIX系のシステムでは、クライアントとサーバの両方で/etc/groupにリストされたグループや同様にして/etc/passwdでリストされたユーザーに特権を与えることが出来ます。特権を与えられていなければなりません。特権を持っていなければなりません。※これを簡単に実現する方法があります。実行しておくという方法もあります。REFERENCES特権を与えるときには、最低でもプライマリーキーとなっている列全てに対する特権を与える必要があります。プライマリーキー以外の列に対するREFERENCES特権を与えても、実際には何の影響もありません。特権を持っているかのチェックがなされます。特権の照合は、外部キーの値がプライマリーキーテーブルに含まれているかのチェックが行われるときにも同時に行われます。ロールに対しても、REFERENCES特権を与えることが出来ます。オプションが指定されている場合、与えられた特権を他ユーザーに与える権利も同時に与えられます。この場合、すべてのユーザーに特権が与えられますが、データベースオブジェクトに対しては与えられません。使用して行う必要があります。指定による削除を行います。用例isqlでの例です。CHOICEに与えます。OPTION;埋め込みSQLでの例です。SELECTとUPDATEの特権を与えます。GET_EMP_PROJ;埋め込みSQLでの例です。UPDATE特権を与えます。続いて、user1,user2,user3をそのロールに割当てています。REVOKE指定されたデータベースオブジェクトに対してユーザーが持つ特権を取り消します。SQL,DQL,isqlで使用できます。DSQLで使用する場合、終端文字のセミコロンは不要です。isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端文字は必要です。与えた特権の名前です。REFERENCESを指定できます。他のユーザーに対してGRANTを行う権限を取り消します。データベースオブジェクトに対しては指定できません。与えられた特権が当てはまる列を指定します。特権を取り消す対象となる既存のテーブル名です。特権を取り消す対象となる既存のビュー名です。UNIX系のシステムにおいて、/etc/groupで定義されたグループ名です。特権の取り消しを行う、既存のデータベースオブジェクトの名前です。特権の取り消しを行うユーザーのリストです。作成された、既存のロール名です。rolenameのロールが与えられるユーザーです。セキュリティデータベースに登録してある必要があります。より、ユーザーもしくは他のデータベースオブジェクトの特権を削除できます。特権とは、ユーザーがそれに対応した操作を行うために必要なものです。次表に、使用可能な特権に関してまとめました。テーブルまたはビューに対して、行の検索が可能です。テーブルまたはビューに対して、行の削除が可能です。テーブルまたはビューに対して、行の追加が可能です。テーブルまたはビューに対して、行の列値を変更可能です。列指定を行うことにより、変更できる列を制限することが出来ます。ストアドプロシージャを実行することが出来ます。指定した列を外部キーで参照することが出来ます。列の指定を行わなかった場合、すべてのプライマリーキー(主キー)に対する特権が与えられます。指定を行う場合は、同様にすべてのプライマリーキーを指定しなければなりません。IB4.0以前のバージョンでは、ALLにREFERENCES特権は含まれません。(訳注:Firebirdには関係ありません。より権限を与えることができる権利を剥奪します。REVOKEに関して次の制限事項があります。特権を与えたユーザーのみが、その特権を取り消すことが出来ます。特権を与えるときは、複数のユーザーが、同じ特権を同一のデータベースオブジェクトに与えることが出来ます。このような場合、REVOKEによってあるユーザーが自分が与えた特権を取り消そうとしたときには、そのユーザーが以前に与えた特権の割当てのみが取り消されるだけです。PUBLIC指定で特権の取り消しを行った場合には、PUBLIC指定ですべてのユーザーに対して与えられた特権のみが取り消されます。あるユーザーがロールから除かれた場合、ロールのメンバーであることによって得られていた特権は、すべて無効になります。用例すべて、isqlでのサンプルです。SELECT特権を取り消します。ROLEロールを作成します。DSQLで使用する場合、終端文字のセミコロンは不要です。isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端文字は必要です。ロールと関連付ける名前です。データベース内のロールの中で、一意でなければなりません。より、ロールを作成します。ロールに対しては、ユーザーと同様にして特権を与えることが出来ます。ロールには一人もしくは複数のユーザーを割当てることが出来ます。ロールに与えられた特権は、そこに割当てられたユーザーに対しても与えられます。ユーザーがロールを使用する場合は、接続時にロールの指定を同時に行わなければなりません。ロールにユーザーを割当てる場合も同様です。用例"administrator"という名前のロールを作成します。ROLEデータベースからロールを削除します。DSQLで使用する場合、終端文字のセミコロンは不要です。isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端文字は必要です。既存のロールの名前です。よって作成されたロールを削除します。削除を行った場合、ユーザーがそのロールに所属することによって得られていたすべての特権は取り消されます。ロールの削除を行えるのは、作成者、SYSDBAユーザーおよび管理者権限を持つユーザーのみです。用例isqlにより、データベースからロールを削除します。