Virtual DataPort データベースの作成と変更¶
Virtual DataPort データベースを管理するためのコマンドは以下のとおりです。
CREATE DATABASE: 新しいデータベースを作成します。以下の構文を参照してください。管理者だけがこのコマンドを実行できます。ALTER DATABASE: 既存のデータベースを変更します。以下の構文を参照してください。管理者だけがこのコマンドを実行できます。DESC VQL DATABASE: データベースのエレメントである VQL ステートメントを取得します。LIST DATABASES: すべてのデータベースの名前を返します。管理者以外の場合、このコマンドを実行すると、このユーザーが CONNECT 権限を持つデータベースだけが返されます。DROP DATABASE: データベースを削除します。データベースが削除されると、データベースのすべてのコンポーネント (データソース、ビュー、基本ビューなど) も削除されます。管理者だけがこのコマンドを実行できます。
CREATE [ OR REPLACE ] DATABASE <name:identifier> [ <description:literal> ]
[ VCS
{ OFF
| ON
{ (
[ REMOTEDB = <identifier> ]
[ ENVIRONMENT = <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 ]
}
]
[ CREDENTIALS_VAULT (
STATUS { ON | OFF | DEFAULT }
[ PROVIDER
{ HASHICORP ( NAMESPACE = <literal> )
| CYBERARK (
APPLICATION_ID = <literal>
{ AGENT
| AGENT_LESS (
CLIENT_KEY = <literal>
[ CLIENT_KEY_PASSWORD = <literal> [ ENCRYPTED ] ]
)
}
)
}
]
)
]
[ 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 の文字セット 」のセクションを参照してください。
このパラメータの値は、ユーザーが管理ツールでビューを作成または変更するときに使用できる文字を指定するだけです。サーバーの動作には影響しません。
CREDENTIALS_VAULT句を使用すると、データベースレベルで資資格情報ボールトの構成をカスタマイズできます。これは、さまざまな構成で複数のデータベースの資格情報を管理する必要がある場合に特に役立ちます。データベースごとに異なる構成を可能にすることで、資格情報管理プロセスのセキュリティと効率を高めることができます。ODBC AUTHENTICATION KERBEROS句を追加し、ODBC クライアントや ADO.net クライアントでの Kerberos 認証を有効にします。ODBC クライアントが Kerberos 認証を使用できるよう DSN を構成する方法については、開発者ガイドの「 ODBC 経由でのアクセス 」のセクションを参照してください。CHECK_VIEW_RESTRICTIONS: アップグレードガイドの「 列権限、行制限、カスタムポリシーが常に伝達される 」のセクションで、このパラメータを変更することの意味について説明しています。
バージョン管理システム
VCS (バージョン管理システム) 統合サポートはデータベース用に構成できます (詳細については、管理ガイドの「 バージョン管理システムの統合 」のセクションを参照してください)。VCS は、無効にすることも、デフォルト構成で有効にしたり (サーバーのグローバル構成)、特定の構成で有効にしたりすることもできます。
無効にする:
VCS OFF。デフォルト構成で有効にする:
VCS ON。データベースでデフォルトの VCS 構成を使用する場合でも、いくつかのパラメータは構成することができます。REMOTEDB: VCS リポジトリのデータベースの名前が Virtual DataPort のデータベースの名前と異なる場合に、このパラメータを追加します。ENVIRONMENT: このデータベースで、デフォルト環境ではなく特定の VCS 環境を使用する場合に、このパラメータを追加します。特定の構成で有効にする:
VCS ON。いくつかの異なるパラメータを組み合わせて指定可能。その場合、ENVIRONMENTやREMOTEDBの他にも、以下のようなさまざまなパラメータを構成できます。URL: 使用するバージョン管理リポジトリの URL。SYSTEM: 使用するバージョン管理システム (現在は「git」をサポート)。USER: リポジトリにアクセスするユーザーの名前 (オプション)。PASSWORD(オプションでENCRYPTED): 指定したユーザー名に対応するパスワード。使用しているリポジトリが Git であれば、このデータベースに関連付けられたブランチリポジトリを選択できます。そのためには、パラメータ
PROPERTIES ('branch'='<name of the branch>')を渡します。
認証方法
Virtual DataPort データベースでは、以下の 2 種類のアクセス制御のいずれかを指定できます。
ローカルアクセス制御 (
AUTHENTICATION LOCAL)。つまり、Virtual DataPort にアクセスするユーザーを Virtual DataPort に作成する必要があります (このユーザーは、「 ユーザーの管理 」のセクションの手順に従って作成します)。これは、データベースを作成および構成する、Design Studio のダイアログのオプション [Authentication = Global authentication settings] に対応しています。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 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> ]*
<grant> ::= (「 CREATE DATABASE および ALTER DATABASE における GRANT/REVOKE 句の構文 」を参照してください)
このステートメントを使用すると、データベースの以下の設定を変更できます。
データベースの説明。
認証モード (LDAP または標準)。
認証モードが LDAP でない 場合は、データベースに対するユーザーのアクセス権限を変更する必要があります (「 データベースによる権限の付与 」のセクションを参照)。
データベースのキャッシュ構成のデフォルト設定 (「 キャッシュの使用 」のセクションを参照)、クエリの中間結果のディスクへのスワッピング (「 スワップポリシーの構成 」のセクションを参照)、およびデータベースのロケール。
MEMORYCONFIG句は、[Database management] ウィザード (管理ツールの [Administration] > [Database management] メニュー) の [Memory Usage] ダイアログの設定に相当。...
ALTER DATABASE の主なパラメータについて以下で説明します (他のパラメータについては、上記の CREATE DATABASE の説明を参照)。
COST OPTIMIZATION: このデータベースで cost-based optimization を有効または無効にします。QUERY SIMPLIFICATION: このデータベースで automatic simplification of queries を有効または無効にします。SUMMARY REWRITE: このデータベースで summary rewrite optimization を有効または無効にします。
COST OPTIMIZATION 、 QUERY SIMPLIFICATION 、および SUMMARY REWRITE は、以下に示すの値のいずれかです。
ON: このデータベースでこの機能を有効にします。OFF: このデータベースでこの機能を無効にします。DEFAULT: データベースで、この Virtual DataPort サーバー用に構成された 現在の値 が常に使用されます。たとえば、データベースで「コストベースの自動最適化」がDEFAULTに設定され、この機能がグローバルに無効になっていると (この機能のグローバル値は [Administration] > [Server configuration] メニューの [Queries Optimization] ダイアログで確認)、このデータベースでも機能が無効になります。その後、この機能をグローバルに有効にすると、データベースの特定の構成を変更しなくても、この機能がこのデータベースでも有効になります。
