記事
Hiroshi Sato · 2020年10月29日 1m read

SQLログイン認証の際にログを出力する方法

これはInterSystems FAQ サイトの記事です。
 

以下のようにユーザ名、パスワードを引数に持ち、認証が成功した場合はユーザ名、失敗したときは""(NULL)を返すルーチン(SecTest^SecTest)を作成し、標準の認証システムを書き換えることができます。

 

SecTest(user,pass)
 // user1のパスワードがuser1の場合、認証OKのログを作成
 if user="user1",pass="user1" {
  set ^sqllog($i(^sqllog))="認証OK;"_$horolog_";"_user
  quit user
 }
 // 認証できなかった場合、認証NGのログを作成
 set ^sqllog($i(^sqllog))="認証NG;"_$horolog_";"_user
 quit ""

 

このルーチンを$SYSTEM.SQL.SetSQLLoginOverride()関数を使用して置き換えます。

 

do $SYSTEM.SQL.SetSQLLoginOverride("SecTest^SecTest")

 

ただし標準の認証ができなくなりますので、パスワードを別に保管、参照する仕組みを記述する必要があります。

00
1 0 0 21
Log in or sign up to continue