Virtual DataPort データベースの作成と変更

Virtual DataPort データベースを管理するためのコマンドは以下のとおりです。

  • CREATE DATABASE: 新しいデータベースを作成します。以下の構文を参照してください。管理者だけがこのコマンドを実行できます。

  • ALTER DATABASE: 既存のデータベースを変更します。以下の構文を参照してください。管理者だけがこのコマンドを実行できます。

  • DESC VQL DATABASE: データベースのエレメントである VQL ステートメントを取得します。

  • LIST DATABASES: すべてのデータベースの名前を返します。管理者以外の場合、このコマンドを実行すると、このユーザーが CONNECT 権限を持つデータベースだけが返されます。

  • DROP DATABASE: データベースを削除します。データベースが削除されると、データベースのすべてのコンポーネント (データソース、ビュー、基本ビューなど) も削除されます。管理者だけがこのコマンドを実行できます。

CREATE DATABASE ステートメントの構文
CREATE [ OR REPLACE ] DATABASE <name:identifier> [ <description:literal> ]
    [ VCS
      {   OFF
        | ON
          {   (
                [ ENVIRONMENT = <identifier> ]
                [ REMOTEDB = <identifier> ]
                [ PROPERTIES ( <literal> = <literal> [, <literal> = <literal> ]* ) ]
              )
            | (
                URL = <literal>
                SYSTEM = <literal>
                REMOTEDB = <identifier>
                [ USER = <literal> ]
                [ PASSWORD = <literal> ] [ ENCRYPTED ]
                [ ENVIRONMENT = <identifier> ]
                [ PROPERTIES ( <literal> = <literal> [, <literal> = <literal> ]* ) ]
              )
          }
      }
    ]
    [ CHARSET { UNICODE | RESTRICTED | DEFAULT } ]
    [ AUTHENTICATION
      {   LOCAL
        | LDAP <database name:identifier>.<ldap data source name:identifier>
          USERBASE = <literal> [ , <literal> ]*
          USERATTRIBUTENAME = <literal>
          USERSEARCH = <literal>
          ROLEBASE = <literal> [ , <literal> ]*
          ROLEATTRIBUTENAME = <literal>
          ROLESEARCH = <literal>
          [ ROLESSEARCHAUTHENTICATION ]
          [ WITH_ALLUSERS_ROLE ]
       }
    ]
    [ ODBC AUTHENTICATION { NORMAL | KERBEROS } ] // NORMAL by default
    [ CHECK_VIEW_RESTRICTIONS { ALWAYS | DIRECT_QUERIES_ONLY | DEFAULT } ]
    [ <grant> ]*

<grant> ::= (「 データベースによる権限の付与 」のセクションを参照してください)

CREATE DATABASE の主なパラメーターについて以下に説明します。

  • Unicode サポート (CHARSET パラメーター)

    UNICODE の場合、エレメントの識別子に任意の文字を使用できます。

    RESTRICTED の場合、エレメントの識別子に一部の文字しか使用できません。

    DEFAULT の場合、データベースではサーバーのデフォルト構成が使用されます。

    詳細については、管理ガイドの「 ID の文字セット 」のセクションを参照してください。

    このパラメーターの値は、ユーザーが管理ツールでビューを作成または変更するときに使用できる文字を指定するだけです。サーバーの動作には影響しません。

  • ODBC AUTHENTICATION KERBEROS 句を追加し、ODBC クライアントや ADO.net クライアントでの Kerberos 認証を有効にします。ODBC クライアントが Kerberos 認証を使用できるよう DSN を構成する方法については、開発者ガイドの「 ODBC 経由でのアクセス 」のセクションを参照してください。

  • CHECK_VIEW_RESTRICTIONS: アップグレードガイドの「 Column Privileges, Row Restrictions and Custom Policies Are Always Propagated 」のセクションで、このパラメーターを変更することの意味について説明しています。

バージョン管理システム

VCS (バージョン管理システム) 統合サポートはデータベース用に構成できます (詳細については、管理ガイドの「 バージョン管理システムの統合 」のセクションを参照してください)。VCS は、無効にすることも、デフォルト構成で有効にしたり (サーバーのグローバル構成)、特定の構成で有効にしたりすることもできます。

  • 無効にする: VCS OFF

  • デフォルト構成で有効にする: VCS ON 。データベースでデフォルトの VCS 構成を使用する場合でも、いくつかのパラメーターは構成することができます。

    • ENVIRONMENT: サーバーのデフォルト環境とは異なる環境を指定できます。

    • REMOTEDB: データベースを異なる名前のリモートデータベースと同期させることができます。

    • 特定の構成で有効にする: VCS ON 。いくつかの異なるパラメーターを組み合わせて指定可能。その場合、 ENVIRONMENTREMOTEDB の他にも、以下のようなさまざまなパラメーターを構成できます。

    • URL: 使用するバージョン管理リポジトリの URL。

    • SYSTEM: 使用するバージョン管理システム (現在は「svn」をサポート)。

    • USER: リポジトリにアクセスするユーザーの名前 (オプション)。

    • PASSWORD (オプションで ENCRYPTED): 指定したユーザー名に対応するパスワード。

    • 使用しているリポジトリが Git であれば、このデータベースに関連付けられたブランチリポジトリを選択できます。そのためには、パラメーター PROPERTIES ('branch'='<name of the branch>') を渡します。

認証方法

Virtual DataPort データベースでは、以下の 2 種類のアクセス制御のいずれかを指定できます。

  1. ローカルアクセス制御 (AUTHENTICATION LOCAL)。つまり、Virtual DataPort にアクセスするユーザーを Virtual DataPort に作成する必要があります (このユーザーは、「 ユーザーの管理 」のセクションの手順に従って作成します)。

  2. LDAP アクセス制御 (AUTHENTICATION LDAP)。つまり、ユーザーの認証が LDAP サーバーに委任されます。このオプションのメリットは、LDAP サーバーに委任することで、Virtual DataPort にユーザーを明示的に作成しなくてもユーザーを認証できることです。

    また、Virtual DataPort サーバーは、ユーザーが属するロールの名前を LDAP サーバーから取得し、それらのロールを使用して、ユーザーが実行できる操作を確認します。

    注釈

    このデータベースの認証方法が LDAP の場合は、管理ガイドの「 データベースの作成 」のセクションを参照してください。このセクションでは、データベースを作成する前に実行する必要のあるいくつかの手順について説明しているほか、以下のパラメーターについても詳しく説明しています。

    パラメーター AUTHENTICATION が存在しない場合、新しいデータベースでは「ローカルアクセス制御」が有効になります。

    データベースで LDAP 認証を構成する場合に指定する必要のあるパラメーターの一覧を以下に示します。

    • database name: ユーザー認証に使用される LDAP サーバーに接続される LDAP データソースが存在する Virtual DataPort データベース。

    • ldap data source name: LDAP データソースの名前。

    • USERBASE: ユーザーを表すノードを検索するときにスコープとして使用される LDAP サーバーのノード。このパラメーターが複数の値を持つ場合、サーバーはユーザーのノードを 1 番目の USERBASE スコープで検索します。ユーザーを表すノードが見つからなければ、2 番目の USERBASE スコープで検索します。そこでも見つからなければ、3 番目のスコープを検索します (以降同様)。サーバーがユーザーを表すノードを見つけられなかった場合は、そのユーザーへのアクセスが拒否されます。

    • USERATTRIBUTENAME: ユーザーを表すノード内の、ユーザーのユーザー名を含む属性の名前。

    • USERSEARCH: サーバーに接続しようとしているユーザーを表すノードを取得するため実行される、LDAP クエリの生成に使用されるパターン。

    • ROLEBASE: このデータベースのユーザーが持つことのできるロールを表すノードを検索するときにスコープとして使用される LDAP サーバーのノード。このパラメーターが複数の値を持つ場合、サーバーはこのパラメーターに指定されているすべてのノードからパターン ROLESEARCH で作成された LDAP クエリを実行します。

    • ROLEATTRIBUTENAME: ロールを表すノード内の、ロールの名前を含む属性の名前。

    • ROLESEARCH: ユーザーのロールを表すノードを取得する LDAP クエリの生成に使用されるパターン。このパターンには、トークン @{USERDN} または @{USERLOGIN} を含める必要があります (両方を含めることはできません)。

      • @{USERDN} は、このデータベースに接続しようとしているユーザーの識別名に置換されます (例: CN=john,CN=Users,DC=acme,DC=loc)。

      • @{USERLOGIN} は、このデータベースに接続しようとしているユーザーのログイン名に置換されます (例: john)。

    • ROLESSEARCHAUTHENTICATION: ユーザーが LDAP 認証でデータベースに接続しようとすると、サーバーは、ユーザーが指定したパスワードを検証した後、LDAP クエリを実行してユーザーのロールを取得します。 ROLESSEARCHAUTHENTICATION 句が存在する場合、サーバーはデータベースに関連付けられた LDAP データソースの資格情報を使用して、この LDAP クエリを実行します。この句が存在しない場合は、このデータベースに接続しようとするユーザーの資格情報を使用してクエリを実行します。

    • WITH_ALLUSERS_ROLE: この句が存在する場合、サーバーはこのデータベースに正しくログインしたすべてのユーザーにロール「allusers」の権限を付与します。このロールが LDAP サーバーのユーザーに割り当てられていない場合も同様です。

      この句をステートメントに追加するのは、[Create New Database] ダイアログで [Assign "allusers" role for every connected user] チェックボックスを選択するのと同じことです。

      管理ガイドの「 LDAP 認証を使用するデータベースの作成 」のセクションで、このオプションについて詳しく説明しています。


ALTER PROCEDURE ステートメントの構文
ALTER DATABASE <name:identifier> [ <description:literal> ]
    [ CHARSET { UNICODE | RESTRICTED | DEFAULT } ]
    [ COST OPTIMIZATION { ON | OFF | DEFAULT } ]
    [ QUERY SIMPLIFICATION { ON | OFF | DEFAULT } ]
    [ SUMMARY REWRITE { ON | OFF | DEFAULT } ]
    [ VCS
      {   OFF
        | ON
          {   (
                [ ENVIRONMENT = <identifier> ]
                [ REMOTEDB = <identifier> ]
                [ PROPERTIES ( <literal> = <literal> [, <literal> = <literal> ]* ) ]
              )
            | (
                URL = <literal>
                SYSTEM = <literal>
                REMOTEDB = <identifier>
                [ USER = <literal> ]
                [ PASSWORD = <literal> ] [ ENCRYPTED ]
                [ ENVIRONMENT = <identifier> ]
                [ PROPERTIES ( <literal> = <literal> [, <literal> = <literal> ]* ) ]
              )
          }
      }
    ]
    [ AUTHENTICATION {
          LOCAL [ <grant> ]*
        | LDAP <database_name:identifier>.<ldap_data_source_name:identifier>
          USERBASE = <literal> [ , <literal> ]*
          USERATTRIBUTENAME = <literal>
          USERSEARCH = <literal>
          ROLEBASE = <literal> [ , <literal> ]*
          ROLEATTRIBUTENAME = <literal>
          ROLESEARCH = <literal>
          [ ROLESSEARCHAUTHENTICATION ]
          [ WITH_ALLUSERS_ROLE ]
       }
    ]
    [ ODBC AUTHENTICATION { NORMAL | KERBEROS } ] // NORMAL by default
    [ CACHE
        {   DEFAULT
          | [ ON | OFF ] (
              [ MAINTENANCE { OFF | ON } ]
              [ MAINTAINERPERIOD <seconds:integer> ]
              [ TIMETOLIVE { <seconds:integer> | DEFAULT | NOEXPIRE } ]
              [ DATASOURCE { DEFAULT | CUSTOM | <data_source_name:identifier> DATABASE <database_name:identifier> } ]
            )
        }
    ]
    [ MEMORYCONFIG
        {   DEFAULT
          | ( SWAP [ ON | OFF ] (
                [ SWAPSIZE <megabytes:integer> ]
                [ SWAPBLOCKSIZE <megabytes:integer> ]
              )
              [ MAXRESULTSIZE <megabytes:integer> ]
              [ MAXQUERYSIZE <megabytes:integer> ]
            )
        }
    ]
    [ CHECK_VIEW_RESTRICTIONS { ALWAYS | DIRECT_QUERIES_ONLY | DEFAULT } ]
    [ <grant> ]*

このステートメントを使用すると、データベースの以下の設定を変更できます。

  • データベースの説明。

  • 認証モード (LDAP または標準)。

  • 認証モードが LDAP でない 場合は、データベースに対するユーザーのアクセス権限を変更する必要があります (「 データベースによる権限の付与 」のセクションを参照)。

  • データベースのキャッシュ構成のデフォルト設定 (「 キャッシュの使用 」のセクションを参照)、クエリの中間結果のディスクへのスワッピング (「 スワップポリシーの構成 」のセクションを参照)、およびデータベースのロケール。

  • MEMORYCONFIG 句は、[Database management] ウィザード (管理ツールの [Administration] > [Database management] メニュー) の [Memory Usage] ダイアログの設定に相当。

  • ...

ALTER DATABASE の主なパラメーターについて以下で説明します (他のパラメーターについては、上記の CREATE DATABASE の説明を参照)。

COST OPTIMIZATIONQUERY SIMPLIFICATION 、および SUMMARY REWRITE は、以下に示すの値のいずれかです。

  1. ON: このデータベースでこの機能を有効にします。

  2. OFF: このデータベースでこの機能を無効にします。

  3. DEFAULT: データベースで、この Virtual DataPort サーバー用に構成された 現在の値 が常に使用されます。たとえば、データベースで「コストベースの自動最適化」が DEFAULT に設定され、この機能がグローバルに無効になっていると (この機能のグローバル値は [Administration] > [Server configuration] メニューの [Queries Optimization] ダイアログで確認)、このデータベースでも機能が無効になります。その後、この機能をグローバルに有効にすると、データベースの特定の構成を変更しなくても、この機能がこのデータベースでも有効になります。