Tableau グループにユーザーを一括で登録する(tabcmd)
無事 DATA Saber に認定いただきました へりおん です。師匠をはじめ周りの方にたくさん助けていただきました。この場を借りてお礼を申し上げます。
本題ですが、Tableau Cloud(Server)にグループという機能があり、グループにユーザを追加しているとパーミッションの設定などを一括でできるという便利な機能があります。ただ、残念なことがグループへの追加や削除はサイト管理者のロールに限定され、しかも1ユーザーずつ選択するしかありません。そこで Tableau tabcmd というユーティリティを利用してコマンドラインでユーザーをCSVで一括登録する方法をご紹介します。
※ちなみに私はエンジニアでもIT部門でもないため、詳しいことが分からないまま進めてます。作業は自己責任でお願いしますm(_ _)m
> tabcmd addusers "Development3" --users "users.csv"
パスワード:
ファイルから Tableau Server パスワードを読み込む
新しいセッションを作成しています
===== Server: https://****************.online.tableau.com
===== Username: ****************@********.jp
Tableau Server サイト: ********test01
サーバーに接続しています...
正常に終了しました
===== Adding users listed in users.csv to Development3...
tabcmd.result.success.user_actions
tabcmd.result.success.user_actions
tabcmd.result.success.user_actions
100% 完了
エラーの数: 0
■tabcmd のダウンロード
Tableau Cloud用の tabcmd は以下のサイトからダウンロードできます。
Windows を利用されている方は tabcmd.exe を任意のフォルダにダウンロードしてください。
※ここでは c:\Tableau\tabcmd にダウンロードした前提ですすめます
■Tableau Cloudにログインする
tabcmd のコマンド一覧は以下のサイトに詳しく記載がありますので参考にしていただき、引き続き私の実施した手順を書きます。
コマンドプロンプトを開き、ダウンロードしたディレクトリに移ります
cd C:\Tableau\tabcmd
C:\Tableau\tabcmd>
以下のコマンドでTableau Cloudにログインします。
> tabcmd login -s <URL> -u <ユーザー名> -p <パスワード> -t <サイト名>
ただ、社内の環境、Tableau Cloudの認証設定などいくつか問題があるようで、このままでは接続できませんでした。
●接続がうまくできなくて試したこと
認証がSAMLだと繋がらなかったので一時的にTableu認証に変更
良くわからないSSLっぽいエラーが出たので --no-certcheck のオプションを追加
そして以下のようにすると無事ログインできました!
>tabcmd login -s https://*********.online.tableau.com -u "*******@*****.jp" -p "********" -t ******** --no-certcheck
新しいセッションを作成しています
===== Server: https://*********.online.tableau.com
===== Username: *******@*****.jp
Tableau Server サイト: ********
サーバーに接続しています...
正常に終了しました
■グループを作ってみる
ユーザーを追加する前にグループを作っておきます。tabcmd で作らなくても良いんですが、作り方だけ書いておきます。ちなみにコマンド実行時に毎回パスワードを聞かれました
> tabcmd creategroup "Development3"
パスワード:
ファイルから Tableau Server パスワードを読み込む
新しいセッションを作成しています
===== Server: https://*********.online.tableau.com
===== Username: *******@*****.jp
Tableau Server サイト: ********
サーバーに接続しています...
正常に終了しました
グループ ''Development3'' をサーバー上で作成しています...
正常に終了しました
■グループにユーザーを追加する
先にユーザー一覧のCSVファイルを作成します。CSVはユーザーID(メールアドレス)のみにします。CSVファイルの要件として「UTF-8 BOM付」である必要があります。一旦CSVファイルを作成した後にメモ帳で開いて、違っていればメモ帳の「名前を付けて保存」でエンコードを「UTF-8(BOM 付き)」を選択して保存しましょう。
CSVファイルは tabcmd.exe と同じフォルダに置き、あとはコマンド を実行するのみです。
> tabcmd addusers <グループ名> --users <CSVファイル名>
パスワード:
ファイルから Tableau Server パスワードを読み込む
新しいセッションを作成しています
===== Server: https://*********.online.tableau.com
===== Username: *******@*****.jp
Tableau Server サイト: ********
サーバーに接続しています...
正常に終了しました
===== Adding users listed in users.csv to <グループ名>...
tabcmd.result.success.user_actions
tabcmd.result.success.user_actions
tabcmd.result.success.user_actions
100% 完了
エラーの数: 0
無事グループにユーザーの追加が完了しました!
感覚ですが、1秒間で3件程処理ができましたので、数百名規模でも簡単で間違いもなく作業ができました。グループ数分のCSVファイルが必要にはなりますが、手作業よりはよっぽど早くなりました!
■最後に
いかがだったでしょうか?私はこの手動での作業とチェックで2~3日程度覚悟していたのですが、tabcmd を使うことでリストの作成からグループの追加まで2時間程度ですべてが完了しました。
グループのメンテナンスについては、今はサイト管理者が対応するしか方法がなさそうですが、いつかユーザーにもグループ管理の機能が解放されることを祈りたいと思います。
皆さんのご参考になれば幸いです。
なおくれぐれもですが、作業は自己責任でお願いしますm(_ _)m