SQLでログインする場合,On SQL Authentication
データベースメソッドでCHANGE CURRENT USER
コマンドを実行し,SQLセッションのアクセス権を明示的に付与することが必要です(データベースメソッドが存在する場合)。
v11では,SQLの実行コンテキスト(たとえばトリガ)でCurrent user
を使用することができませんでした。返されるのは,直近のOn SQL Authentication
データベースメソッドで付与されたユーザー名であり,カレントSQLセッションのユーザー名であるとは限らなかったからです。SQLセッションはOn SQL Authentication
データベースメソッドで付与されたアクセス権で実行されていますが,そのアクセス権をCurrent user
で取得できるとは限りません。
v12以降,SQLの実行コンテキストでCurrent user
を使用した場合,SQLセッションのアクセス権がそのまま返されるようになりました。ただし,SQLの実行コンテキスト(たとえばトリガ)でCHANGE CURRENT USER
コマンドを実行した場合,4Dのカレントユーザーが変更され,Current user
とSQLセッションのアクセス権が一致しないことになります。いずれにしても,On SQL Authentication
データベースメソッドでSQLセッションに付与されたアクセス権は,ログアウトするまで有効であり,途中,CHANGE CURRENT USER
コマンドに影響されることはありません。