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権限が必要となりますので、ご注意下さい。
|