SAP IQまたは、SAP HANA Cloud, data lakeリレーショナルエンジンのインスタンスから別のインスタンスへログインをコピーする
作成者:伊藤 沢 投稿日:2023年5月18日
このブログは、Mark Mumyが執筆したブログ「Copying a Login From One SAP IQ or SAP HDLRE Instance to Another」(2023/1/20)の抄訳です。最新の情報は、SAP Communityの最新ブログやマニュアルを参照してください。
長年にわたり、多くのお客様から一つのSAP IQインスタンスから他のSAP IQインスタンスへログインをコピーまたは移行する機能をつけてほしいとリクエストがありました。幸い、同じパスワードを維持したい場合、現在はこれが可能です。
以下で説明するものは、SAP IQとSAP HANA Cloud, data lakeリレーショナルエンジン(HDLRE)に同梱されている iqunload ユーティリティーの一部としてSAPが使用しているプロセスと同じものです。
ログインとパスワードをコピーするには、SYS.SYSYSERとSYS.SYSUSERPASSWORDの2種類のシステムテーブルを使用する必要があります。
これらのテーブルには、(設定されている場合には)システム内の各ユーザーとグループのログインとパスワードが含まれています。
パスワードの抽出プロセスはとても簡単です。USER_NAMEとPASSWORDのカラムが必要なだけです。パスワードはSAPの安全な方法を使用して暗号化されています。
パスワードのリバースエンジニアリングはできません。
しかしながら、CREATE USERとGRANT CONNECT構文を使用することで、暗号化されたパスワードを渡すことができます。
この方法を使用することで、古いシステムのパスワードで新しいシステムにユーザーを追加することができます。
以下で説明するプロセスは、システムから全ユーザーとnull以外のパスワードをpullします。
ユーザー名またはwildcardを指定し、適切なGRANT CONNECTステートメントを生成することができます。
しかしながら、このプロセスの一部として、暗号化されたパスワードは16進数文字列にコンバートする必要があります。これを行うための hextostr 関数のコードも以下には含めています。
コードは以下のようになります。
drop function if exists dbo.hextostr;
drop procedure if exists dbo.sp_iqreverse_passwd;
create function dbo.hextostr ( bin_expr varbinary(255) )
returns varchar(255)
begin
declare data_len int;
declare i int;
declare newstr varchar(255);
-- for IQ v15
set temporary option ansi_substring='off';
set data_len = datalength( bin_expr );
set newstr = '';
set i = 1;
while i <= data_len loop
set newstr = newstr || '\x' || lower( substring ( inttohex ( substring( bin_expr,i,1) ), 15, 2 ) );
set i = i + 1;
end loop;
return rtrim( newstr );
end;
create procedure dbo.sp_iqreverse_passwd (
in search_name varchar(255) default '%'
)
begin
select 'set temporary option escape_character=''on'';' as 'GRANT STMT'
union all
select 'grant connect to ' + u.user_name +
ifnull(sup.password,';',' identified by encrypted ''' + hextostr( sup.password ) + ''';' )
from sys.sysuser u, sys.sysuserpassword sup
where u.user_id = sup.user_id
and sup.password is not null
and lower(u.user_name) like lower(search_name);
end;
このプロシージャーを実行するには、単純にSAP IQまたはSAP HANA Cloud, data lakeリレーショナルエンジンにログインし、このプロシージャーを実行するだけです。
grant connect to mark identified by 'password';
call sp_iqreverse_passwd ( 'mark' );
以下のように出力されます。
GRANT STMT
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
set temporary option escape_character='on';
grant connect to mark identified by encrypted '\x01\x2f\x7f\xdf\xf5\x5a\x65\x7d\xa4\xf5\x5f\xf3\x4b\xba\x39\x45\x7f\x9f\x80\xc2\xf5\xa3\x3d\x45\x42\xff\xe8\x0d\xbe\x72\x93\xc5\x60\xda\x97\xe9\x4d';
(2 rows)
このコマンドを同じSAP IQインスタンスに対して実行できます。
revoke connect from mark;
set temporary option escape_character='on';
grant connect to mark identified by encrypted '\x01\x2f\x7f\xdf\xf5\x5a\x65\x7d\xa4\xf5\x5f\xf3\x4b\xba\x39\x45\x7f\x9f\x80\xc2\xf5\xa3\x3d\x45\x42\xff\xe8\x0d\xbe\x72\x93\xc5\x60\xda\x97\xe9\x4d';
‘password’のパスワードを使用して動作するか確認します。
[sap@tmp]$ dbisql -host localhost -port 2638 -nogui -c "uid=mark;pwd=password"
(mark)> select user_name(), db_name()
user_name() db_name()
---------------------
mark iqdemo
(1 rows)
SAP HANA Cloud, data lakeリレーショナルエンジンでも同じコードとプロセスを使用することができます。
もちろん、SAP HANA Cloud, data akeリレーショナルエンジンは、クラウドデータベースなため、接続パラメーターは、少し異なります。
もう一つ気をつけなければならない重要な点としては、暗号化されたパスワードを他のユーザーに使うことはできません。
パスワードを作成するために使用されているハッシュアルゴリズムは、ユーザー名に紐づいているからです。
このオリジナルブログが掲載されているSAP CommunityのSybase関連タグをフォローして、最新技術情報をキャッチアップしてください(フォローには登録が必要です)。
SAP Communityの関連タグ
・SAP HANA Cloud, data lake ブログ / Q&A
・SAP IQ ブログ / Q&A
・SAP SQL Anywhere ブログ / Q&A
SAP Communityでは質問も投稿することが可能で、世界中のSAP社員やユーザーのアドバイスを受けることができます。
———————————————————
SAPジャパンブログ内関連記事:
SAP HANA Cloud, data lake
SAP HANA Cloud, data lake 2022年12月版、2023年3月版、6月版の主な新機能
SAP HANA Cloudの「マルチ環境」のサポートとSAP HANA CloudのKyma環境からの使用
SAP HANA Cloud : データレイクおよびデータティアリング(階層化)概要
SAP IQシステムからSAP HANA Cloud, data lake (Standalone Data Lake) へ移行する理由トップ5
SAP IQまたは、SAP HANA Cloud, data lakeリレーショナルエンジンのインスタンスから別のインスタンスへログインをコピーする
SAP HANA Cloud, data lakeリレーショナルエンジンで非同期でテーブルをロードする
Jupyter NotebookとPySparkでSAP HANA Cloud, data lake Filesを使用する
SAP HANA Cloud, data lakeストレージのオブジェクトストレージへの変更によるパフォーマンス向上とペタバイト規模データの対応およびコスト低減
SAP HANA Cloud, data lakeでマテリアライズドビューを使用してパフォーマンスを上げる
SAP HANA Cloud, SAP HANA データベースとSAP HANA Cloud, data lake filesを使用する
SAP HANA Cloud, HANA データベースからSAP HANA Cloud, data lakeデータベースへの最速のデータ移行方法とテスト結果
SAP HANA Cloud, HANAデータベースから HANA Cloud, data lakeへのデータの高速移行とデータ移行速度に影響するパラメーター
SAP HANA Cloud, data lakeとSAP IQに共通するヒストリカルデータベースとDBSpaceサイズのキャプチャー方法
SAP HANA Cloud, data lake(IQ)をベースにしたNode.jsアプリケーションの構築
複数のSAP HANAソースからのデータを1つのSAP HANA Cloud, data lake(IQ)に集約する
SAP HANA Cloud, data lake Filesへの最初のアクセス設定
SAP HANA Cloud, data lakeおよびSAP IQにおけるスキーマのエクスポート/バックアップ
SAP HANA Cloud, data lake(IQ)にWindows端末からPythonで直接接続する
SAP HANA Cloud, data lakeへのデータロードにおけるvCPU数の影響
SAP IQのクラウドサービスが開始されました – SAP HANA Cloud, data lake (Standalone IQ)
SAP IQ
SAP IQのクラウドサービスが開始されました – SAP HANA Cloud, Data Lake (Standalone IQ)
SAP IQ – 隠れたイッピン(the hidden treasure) …
全てのSAP BW、SAP BW/4HANAリリースのSAP ニアラインストレージ(NLS)ソリューション – SAP IQ
SAP IQによるSAP ニアラインストレージ(NLS)のパフォーマンスを向上させる
SAP IQを利用したSAP Information Lifecycle Management(ILM)
DBA CockpitでSAP IQを有効にする
SAP IQのための容易なインストーラー - 「Q」
列指向データベースでもOLTPに対応したSAP Sybase IQ16の機能拡張
大量データの「圧縮率」と「ロード時間」を改善したSAP Sybase IQ16の技術解説
SAP IQ 16.1 SP05がリリースされました
SAP ASE
SAP ASE 16.0 SP03による高可用性(HA)+災害復旧(DR)の3ノードHADR
カスタム開発のアプリケーションにおけるSAP ASE Always-on機能へのDRノードの追加(パート 1)(パート 2)(パート 3)
SAP ASE 16.0 SP04の新機能
SAP ASEの新しい管理ツール「AMC」の紹介:インストール方法、メモリー管理、ワークロード分析機能、Workload AnalyzerのSSL設定について
SAP HANAプラットフォームを相互補完し進化する旧Sybase製品の今――SAP ASEとSAP IQ
SAPアプリケーション向けデータベースとしてSAP Sybase ASEが採用される理由とは
RDBMSのパフォーマンス向上の仕掛け――SAP Sybase ASE 15.7の最新アーキテクチャー解説
オンラインマニュアル:
SAP HANA Cloud
SAP HANA Cloud, Data Lake (SAP HANA DB-Managed)
SAP HANA Cloud, Data Lake (Standalone)
SAP Datasphereスペースを SAP HANA Cloud, data lakeに接続して、大量のデータを保存または利用できます。
SAP IQ
SAP SQL Anywhere(日本語)/(最新英語)
SAP ASE
SAP Community (ブログ/ Q&A) :
SAP HANA Cloud, data lake
SAP IQ
SAP SQL Anywhere (日本語ブログ一覧ページ)
SAP ASE
SAP Community Wiki:
SAP IQ
SAP SQL Anywhere
SAP ASE
sap.com 製品ページ:
SAP HANA Cloud, data lake
データレイクとは
SAP IQ
SAP SQL Anywhere(サブページ)
SAP ASE
デベロッパー向けチュートリアル
SAP HANA Cloud, data lake
その他:
SAP IQ テクニカル概要
SAP IQ 16.0 ハードウェアサイジングガイド
様々なストレージおよびネットワークテクノロジーにおける SAP IQ 16 Multiplex のパフォーマンス評価