TECHNOLOGY
FAQ (よくある質問)
対象バージョン : 全て
対象OS : 全て
QUESTION ( SQ0801074 )
データベース・オプションの変更が行なわれません
(ISQLからSET OPTION文でデータベース・オプションを変更したのですが、Sybase Centralで確認したところ変更が反映されていませんでした)
ANSWER
・現象の原因
この現象は、ISQLとSybase Centralで表示されるオプションのスコープが異なることが原因です。
ISQLでSET OPTION文を実行すると、ISQLで接続しているユーザのオプション値が変更されます。例えば、DBAユーザでISQLに接続し、SET OPTION文を実行すると、DBAユーザのオプション値が変更されます。
Sybase Centralで、データベース名を右クリックし、オプションを表示した場合、表示されるのはPUBLICグループのオプション値とデフォルト・オプション値のみとなります。
ISQLから変更したオプション値を見る場合には、「ユーザとグループ」フォルダ内にあるユーザ名を右クリックし、オプションを表示して下さい。
この場合、ユーザのオプション値、PUBLICグループのオプション値とデフォルト・オプション値が表示され、ユーザのオプション値に、ISQLで設定した値が設定されています。
1.DBAユーザがISQLからデータベースに接続
2.ISQLからSET OPTION文を実行(SET OPTION max_statement_count = 0)
3.Sybase Centralからデータベースに接続
4.Sybase Central内のデータベース名を右クリックし、オプションを選択
→max_statement_countは50となっている。(これはPUBLICオプション値の為)
5.Sybase Central内のユーザとグループフォルダに移動
6.フォルダ内のユーザ名(DBA)を右クリックし、オプションを選択
→max_statement_countは0となっている。
上記の場合、接続ユーザDBAを使用する場合は、max_statement_count=0が適用されます。DBA以外の接続ユーザを使用する場合には、max_statement_count=50 が適用されます。
なお、6.の後にISQLでPUBLICのオプション値を変更した場合、Sybase Centralで再度オプション値を確認する前に、[表示メニュー]-[全て再表示] を実行して下さい。これを実行しないと変更したオプション値が反映されません。
・現象の解決策
ISQLで設定したオプションを、Sybase Centralで確認できるようにする(全ての接続ユーザに反映する)為には、PUBLICグループに対してオプションを設定します。(SET OPTION PUBLIC.max_statement_count=0)
このようにオプションの設定を行うことで、PUBLICグループのメンバーである全ての接続ユーザに、max_statement_count=0 が適用されます。ただし、接続ユーザに別のオプション値を設定した場合は、ユーザのオプション値が優先されますのでご注意下さい。
なお、PUBLICに対してオプションを設定する場合には、DBA権限が必要となりますので、ご注意下さい。