Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの設定 » データベース・オプション » データベース・オプションの概要 » データベース・オプションの設定

 

データベース・オプションのスコープと継続期間

オプションは、パブリック、ユーザ、テンポラリの 3 つのスコープ・レベルで設定できます。

テンポラリ・オプションは、ユーザ設定とパブリック設定より優先されます。ユーザ・レベルのオプションは、パブリック設定より優先されます。現在のユーザに対してユーザ・レベルのオプションを設定すると、対応するテンポラリ・オプションも設定されます。

オプションの中には (COMMIT 動作など)、スコープがデータベース全体に及ぶものがあります。これらのオプションの設定には、DBA 権限が必要です。その他のオプション (isolation_level など) は、現在の接続のみに適用され、特別なパーミッションは必要ありません。

オプション設定への変更がいつ有効になるかは、オプションによって異なります。recovery_time などのグローバル・オプションの変更は、次にデータベースを起動したときに有効になります。

現在の接続にのみ影響を与えるオプションは、通常すぐに有効になります。オプションの設定は、たとえばトランザクションの途中でも変更できます。ただし、カーソルが開いているときにオプションを変更すると、結果の信頼性が低くなる可能性があります。たとえば、カーソルが開いているときに date_format を変更しても、次のローのフォーマットは変わりません。カーソルが取り出される方法によっては、変更がユーザに伝わるのは、いくつか後のローになる場合があります。

パブリック・オプションの設定

PUBLIC ユーザ ID に対してオプションを設定するには、DBA 権限が必要です。

PUBLIC ユーザ ID に対するオプションの値を変更すると、独自の数値を設定していない全ユーザについて、そのオプションの永久値が変更されます。ただし、そのオプションがすでに PUBLIC ユーザ ID に設定されていないかぎり、個々のユーザ ID にオプション値は設定されません。

PUBLIC ユーザにかぎり設定されたオプションの中には、変更された設定を CONNECTION_PROPERTY 関数を通じてユーザが参照できなくても、既存の接続に対して即座に有効になるものがあります。このような例には、global_database_id オプションがあります。このような理由から、他のユーザがデータベースに接続している間は PUBLIC-only オプションを変更しないでください。

テンポラリ・オプションの設定

SET OPTION 文に TEMPORARY キーワードを追加すると、変更の適用期間を変更できます。通常、オプションの変更は永久的です。SET OPTION 文を使って明示的に変更されるまで変わりません。

SET TEMPORARY OPTION 文を実行した場合、新しいオプション値は現在の接続にかぎり、接続の期間のみ有効になります。

SET TEMPORARY OPTION を使用して PUBLIC オプションを設定すると、データベースの実行中はその変更が継続します。データベースが停止した際に、PUBLIC ユーザ ID のテンポラリ・オプションはその永久値に戻ります。

PUBLIC ユーザ ID のテンポラリ・オプションを設定すると、セキュリティ上の利点があります。たとえば、login_mode オプションが有効なときは、データベースは実行中のシステムのログイン・セキュリティに依存します。このオプション設定を一時的に有効にすると、Windows ドメインのセキュリティに依存しているデータベースは、データベースが停止し、ローカル・コンピュータにコピーされるといった場合でも、危険にさらされることはありません。この場合、login_mode オプションは、永久値の Standard に戻ります。このモードでは、統合化ログインを使用できません。

SQL 文の設定オプション

INSERT、UPDATE、DELETE、SELECT、UNION、EXCEPT、INTERSECT 文には OPTION 句があるため、これらの文によってマテリアライズド・ビューが使用される方法や、クエリの最適化方法を指定できます。この句を使用すると、該当する文に対してのみ、パブリック・オプションやテンポラリ・オプションの設定よりも優先されるオプション設定を指定できます。OPTION 句では、次のオプションの設定を変更できます。