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

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere 16 変更点とアップグレード » バージョン 16.0 の新機能

 

SQL Anywhere の動作の変更

次に、バージョン 16.0 で導入された SQL Anywhere の動作の変更を示します。サポートされているプラットフォームおよびバージョンについては、[external link] http://www.sybase.com/detail?id=1061806を参照してください。

  • 一部のシステムプロシージャのデフォルトセキュリティモデルの変更   16.0 より以前のバージョンのシステムプロシージャの一部は、パーミッションが必要なデータベースでの操作を実行します。16.0 より以前のバージョンのセキュリティモデルではこれらのプロシージャはデファイナ (所有者) のパーミッションで実行しており、ユーザはプロシージャが実行するすべての操作のためのパーミッションではなく、プロシージャ自体を実行するためのパーミッションのみが必要でした。一部の例外として、DBA 権限も必要な場合がありました。

    バージョン 16.0 以降の時点で、これらのプロシージャのデフォルトセキュリティモデルが変更されます。デフォルトで、新しく作成したデータベースでは、これらのプロシージャはインボーカの権限によって実行されます。そのため、プロシージャを実行するには、インボーカがプロシージャのマニュアルに記載された権限を有している必要があります。インボーカには、プロシージャに対する EXECUTE 権限も必要ですが、これは、PUBLIC のメンバーであることにより継承されます。

    データベースの作成時に、CREATE DATABASE 文の新しい SYSTEM PROCEDURE AS DEFINER 句または初期化ユーティリティ (dbinit) の -pd オプションを使用して、古いモデルを使用するか新しいモデルを使用するかを制御できます。ただし、一部のプロシージャでは、セキュリティモデルの設定に関係なく、常にマニュアルに記載された権限が必要となります。これらのプロシージャのリストについては、16.0 より前のバージョンのシステムプロシージャを呼び出し側または定義者として実行するを参照してください。

    データベースのアップグレード時のデフォルト動作では、設定済みのセキュリティモデルが保持されます。そのため、たとえば 12.0.1 データベースをアップグレードする場合、特に指定しなければ、アップグレードされたデータベースは古いセキュリティモデルを使用します。

    使用するセキュリティモデルをアップグレード時に制御するには、ALTER DATABASE 文の SYSTEM PROCEDURE AS DEFINER 句またはアップグレードユーティリティ (dbupgrad) の -pd オプションを使用します。EXECUTE と特定の権限の両方が必ず必要となるシステムプロシージャの設定に関する同じ例外が、作成についてのアップグレードに適用されます。

    注意

    セキュリティモデルの決定 (インボーカとデファイナ) はユーザ定義のプロシージャのデフォルト動作に影響しません。このデフォルト動作はデファイナのままです。システムプロシージャのデフォルトをインボーカに変更しても、ユーザ定義のプロシージャのデフォルトはデファイナのままです。

  • 相対パスとディスクサンドボックス   以前のリリースでは、相対パスのデフォルトは常にデータベースサーバの作業ディレクトリでした。現在、データベースに対してサンドボックスを有効にすると、パスはデータベースサーバのディレクトリではなく、データベースのディレクトリへの相対パスとなります。 ディスクサンドボックスを参照してください。

  • ビュー定義でサポートされている SELECT *   これまでのリリースでは、SELECT * は、CREATE VIEW 文のメインクエリでのみサポートされていました。現在は、メインクエリ、サブクエリ、派生テーブル、または、CREATE VIEW 文の subselect でサポートされています。 CREATE VIEW 文を参照してください。

  • パスワードの最小長の変更   以前のリリースでは、パスワードのデフォルトの最小長は 0 文字でした。パスワードのデフォルトの最小長は 3 文字に変更されています。使用しているアプリケーションで 0 文字のパスワードが許可されている場合、SQL Anywhere のデータベースで次の文を実行し、以前のリリースに合わせてデフォルト設定を変更することができます。
    SET OPTION PUBLIC.min_password_length=0;

    詳細については、min_password_length オプションを参照してください。

  • ローカルテンポラリテーブルでインデックスを作成する場合のデフォルト動作の変更   以前のリリースでは、データベースサーバは COMMIT の実行後にローカルテンポラリテーブルにインデックスを作成していました。現在、データベースサーバが COMMIT の実行後にローカルテンポラリテーブルにインデックスを作成するというのは通常の動作でなくなっています。この動作を制御するため、auto_commit_on_create_local_temp_index データベースオプションを設定することができます。 auto_commit_on_create_local_temp_index オプションを参照してください。

  • 新しいパケット最大サイズ   パケットの最大サイズが 16000 バイトから 65535 バイトに増加されました。SQL Anywhere 12 以前のクライアントは、SQL Anywhere 16 のデータベースサーバへの接続時のサイズが 16000 バイトに制限されています。このデフォルトパケットサイズは変更されていません。 CommBufferSize (CBSIZE) 接続パラメータを参照してください。

  • -ch データベースサーバオプションの制限の変更   -ch オプションを使用して 64 MB 未満のキャッシュ最大サイズを指定した場合、データベースサーバによってキャッシュ最大サイズが 64 MB に調整されます。64 MB 未満のキャッシュ最大サイズが必要な場合 (この設定は推奨しません)、-chx オプションを使用します。この変更は Windows Mobile には適用されません。 -ch データベースサーバオプションを参照してください。

  • インデックスの同時構築   以前のリリースでは、インデックスの構築時に CREATE INDEX 文に EXCLUSIVE テーブルロックを指定する必要がありました。現在、操作の最初と最後の短時間だけ EXCLUSIVE テーブルロックを設定し、操作の大半の時間は SHARED ロックを設定すればよいため、インデックスの作成中に他の接続からテーブルデータへのアクセスが可能になっています。インデックス作成のための接続では、インデックスの作成が完了するまでテーブルへのアクセスがブロックされます。この機能を使用するには、既存のデータベースをアップグレードする必要があります。CREATE INDEX 文を参照してください。

  • 接続によりトランザクションログの適用が阻害される場合にミラーリング接続の削除が可能   コピーノードまたはミラーデータベースへの接続は、トランザクションログの適用を阻害しているとき、一部の場合削除されます。たとえば、トランザクションログが変更または削除しようとしているプロシージャが接続で使用されている場合は、トランザクションログが適用されないようにブロックしている接続が削除され、サーバコンソールにメッセージが出力されます。 ミラーデータベースで実行されたクエリを参照してください。

  • プランのキャッシュの変更   クエリ実行プランは、実行時間の長いクエリについてはキャッシュされません。これは、クエリの最適化を避けることのメリットが、クエリの総コストに比べて小さいためです。さらに、データベースサーバでは、ホスト変数の値に大きく左右されるクエリの再利用可能なクエリプランの再構築は行われません。

  • HTTP サーバへの要求変数のための新しいデフォルト   以前のリリースでは、1 回の要求で送信できる HTTP 入力変数の数に制限はありませんでした。MaxRequestVars プロトコルオプションで HTTP 入力変数の数が制限できるようになりました。MaxRequestVars プロトコルオプションの変数の数のデフォルト値は 10000 です。MaxRequestVars (MAXVARS) プロトコルオプションを参照してください。

  • データベースアサーションの新しいデフォルト動作   以前のリリースでは、データベースアサーション障害はデータベースサーバアサーション障害として処理され、データベースサーバがシャットダウンされるか、またはすべてのクライアント接続に対してエラーが返されました。現在、データベースアサーション障害はデータベースサーバアサーション障害とは区別して処理され、データベースサーバが動作を継続した状態でデータベースがシャットダウンされるようになりました。-ufd データベースサーバオプションを参照してください。

  • セキュリティ機能の動作変更   セキュリティ機能キーの最小長が 6 文字になり、一部のセキュリティ機能はグローバルで無効化できず、接続ごとに単体でのみ無効化できるようになりました。 セキュリティ機能を参照してください。

  • 出力での機密情報の難読化   パスワードと暗号化キーを含む文が要求ログに出力されたり、診断トレーシングによって記録されたり、DESCRIBE 文によってカラム名として使用されたりする場合、パスワードと暗号化キーは難読化されます。この動作は、イベントトのトレース出力に記録される文、LastStatement 接続プロパティ、REWRITE 関数の出力にも適用されます。

    機密パラメータ、パスワード、キーは、次のファンクション、プロシージャ、文に対して非表示になります。

    • ENCRYPT 関数
    • DECRYPT 関数
    • sa_verify_password システムプロシージャ
    • sp_addlogin プロシージャ (Adaptive Server Enterprise 互換性プロシージャ)
    • sp_password システムプロシージャ
    • xp_startmail システムプロシージャ
    • xp_startsmtp システムプロシージャ
    • sp_create_secure_feature_key システムプロシージャ
    • sp_alter_secure_feature_key システムプロシージャ
    • sp_use_secure_feature_key システムプロシージャ
    • GRANT CONNECT 文
    • CREATE DATABASE 文
    • CREATE ENCRYPTED DATABASE 文
    • CREATE ENCRYPTED TABLE DATABASE 文
    • CREATE ENCRYPTED FILE 文
    • CREATE DECRYPTED DATABASE 文
    • CREATE DECRYPTED FILE 文
    • START DATABASE 文
    • DROP DATABASE 文
    • CREATE EXTERNLOGIN 文
    • SET TEMPORARY OPTION secure_feature_key = key

  • パーソナルサーバ (dbeng16) のライセンスの変更   パーソナルサーバでは、1 つの CPU 上のコアは 4 つに制限されています。以前は、パーソナルサーバは CPU が 1 つに制限されていました。サーバライセンス取得ユーティリティ (dblic)を参照してください。


データベースユーティリティの動作の変更
システムプロシージャとファンクションの動作の変更
プログラムインタフェースの動作の変更
SQL 文の動作の変更