4D-jp 4D Japan Technical Support Team

SQLユーザーとCurrent userの関係

2019-08-16

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コマンドに影響されることはありません。


リンク