さまざまなユーザーの各種情報のロギングが可能なので、システム テーブルDBC.DBQLRuleTblを使用して個々のユーザーのさまざまなロギング ルールを保守します。これらのルールは、ロギングされた各ユーザーのログオン アカウント列に基づいており、高速にアクセスできるようキャッシュ内で保守されます。
このトピックには、ルール階層の説明はありませんが、デフォルトのアカウントやDBQLルールの理解に役立つ情報があります。データベース クエリー ロギングのルールを適用する階層を参照してください。
DBC.DBQLRulesVビューにアクセスする必要があります。DBC.DBQLRuleTblとDBC.DBQLRuleCountTblには、いずれも直接アクセスできません。
セッションは常にアカウントに関連付けられます。ログオン時に、ユーザーのログオン文字列で異なるアカウント割り当てを指定していない限り、セッションはログオンしているユーザーのデフォルトのアカウントに関連付けられます。<Teradata® CLI V2ワークステーション接続システム、B035-2418>のログオン ポインタの説明を参照してください。
- ローカル キャッシュ。
- ルール データベース。
user1にはデフォルト アカウントabcがあり、それがアカウントdefにも割り当てられており、次のBEGIN QUERY LOGGINGリクエストを実行したとします。
BEGIN QUERY LOGGING ON ALL ACCOUNT = 'ABC'; BEGIN QUERY LOGGING WITH OBJECTS ON user1 ACCOUNT = 'def';
このシナリオでは、ユーザーがログオン時にアカウント文字列を指定しない場合、システムはすべてのルールの代わりにuser1のルールを適用します。
ユーザー1がログオンして実行する操作 | 適用されるルール |
---|---|
アカウントdefを指定する | user1。 システムは、以下のリクエストで指定したルールを使用して、"user1"のクエリーのロギングと、これらのクエリーのオブジェクトのロギングを実行します。 BEGIN QUERY LOGGING WITH OBJECTS ON user1 ACCOUNT = 'def '; |
アカウントを指定しない | ALL。 システムは、以下のリクエストで指定したルールを使用して、user1のクエリーをロギングしますが、それらに関するオブジェクト情報はロギングない。 BEGIN QUERY LOGGING ON ALL ACCOUNT = 'abc '; |