□ 参考: First Derivatives - q for Gods / 9 Permissions with kdb+
http://www.firstderivatives.com/lecture_series.asp
□ 設定方法
認証を行う方法は以下の2種類
- 起動オプションで -u or -U をつける
- .z.pw を変更する
kdb+で新しくセッションが作成される際には、以下の順序で処理が行われる
-u/-U checks ⇒ .z.pw (user check) ⇒ .z.po(port open)
※ .z.pw はデフォルトでは常に1bが返るように定義されている
(1) 起動オプション -u [password_file] / -U [password_file]
事前にパスワードファイルを作成しておき、起動時にパスワードファイルを読み込む
-u: 初期ディレクトリより上の階層にはアクセスできない、OSコマンドは使用できない?
-U: 認証後は制限なし
パスワードファイルは user:password 形式で記載する。
passwordは生で書くか、kdbでmd5形式に変換したものを書く。
$ cat password_file user:password $ q -u password_file -p 5001 // md5に変換する方法 q) md5 "password" 0x5f4dcc3b5aa765d61d8327deb882cf99 // md5 hash でパスワードファイルを書く $ cat password_file_md5 user:0x5f4dcc3b5aa765d61d8327deb882cf99
(2) .z.pw を変更する
.z.pw:{[user;pwd] ... ではユーザーごとに動きを制御することができる。
複雑な制御を行う時はこちらの方法がよい。
First Derivatives のq for Godsでは、message handlerと組み合わせることで User/Poweruser/Superuser ごとに可能なオペレーションを制御する方法が紹介されている。
.z.pw:{[user;pwd] // 判断 // 1b or 0b を返す }; // message handler と組み合わせると相性がよいかも .z.pg:{[query] ...} .z.ps:{[query] ...}
0 件のコメント:
コメントを投稿