ApsaraDB RDS for PostgreSQL インスタンスを作成し、Babelfish を有効化すると、管理アカウントが自動的に初期化され、Babelfish および PostgreSQL の管理に使用できます。RDS インスタンスの作成後は、追加の Babelfish 管理アカウントを手動で作成することも可能です。Babelfish では、次の 2 種類のアカウントをサポートしています:管理アカウント(ApsaraDB RDS コンソールで作成される特権アカウント)および標準アカウント(Tabular Data Stream (TDS) ポート経由で T-SQL を使用して作成されるログイン)。各アカウントタイプには異なる目的があり、それぞれ異なる作成ワークフローが必要です。
| アカウントタイプ | 作成日 | 用途 |
|---|---|---|
| 管理アカウント | ApsaraDB RDS コンソール | PostgreSQL 側(psql)から Babelfish および PostgreSQL を管理する |
| 標準アカウント | TDS ポート(sqlcmd またはその他の SQL Server クライアント) | SQL Server アプリケーションを Babelfish エンドポイントに接続する |
TDS ポート経由で作成されたアカウントは、ApsaraDB RDS コンソール上で表示、作成、変更、削除できません。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Babelfish が有効化された ApsaraDB RDS for PostgreSQL インスタンス
RDS インスタンスのエンドポイントおよびポート番号。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの内部およびパブリックエンドポイントとポート番号の表示および変更」をご参照ください。
(標準アカウントの場合)sqlcmd などの SQL Server クライアント。ダウンロードおよび接続設定については、「クライアントを使用した接続の確立」をご参照ください。
管理アカウントの作成
管理アカウントは、コンソール上で特権アカウントとして作成され、その後 psql を使用して TDS ポートへのアクセス権が付与されます。以下の手順では、例としてアカウント名 babelfish_user を使用します。
インスタンス ページに移動します。上部のナビゲーションバーで、RDS インスタンスが配置されているリージョンを選択します。該当する RDS インスタンスを見つけ、その ID をクリックします。
左側のナビゲーションウィンドウで、アカウント をクリックします。
アカウントの作成 をクリックします。表示されるペインで、アカウントタイプ を 特権アカウント に設定します。

Babelfish 管理アカウントの作成パラメーターは、標準的な RDS アカウントと同一です。詳細については、「アカウントの作成」をご参照ください。
新規アカウントを使用して RDS インスタンスにログインします。
psql -h <endpoint> -p 5432 -U babelfish_user -d babelfish_dbTDS ポート経由での接続権限をアカウントに付与し、sysadmin ロールを割り当てます。
CALL sys.babel_initialize_logins('babelfish_user'); GRANT sysadmin TO babelfish_user;PostgreSQL の sysadmin アカウントは、SQL Server の SA アカウントと同様の方法で使用されます。
標準アカウントの作成
標準アカウントは、Transact-SQL (T-SQL) を使用して TDS ポート経由で作成されます。以下の手順では、例として sqlcmd クライアントを使用します。
TDS ポート経由で RDS インスタンスに接続します。
sqlcmd -S pgm-****.pg.rds.aliyuncs.com,1433 -U babelfish_userログインおよび対応するデータベースユーザーを作成します。
その他のユーザー作成方法については、「CREATE USER (Transact-SQL)」をご参照ください。
-- ログインの作成 CREATE LOGIN test_babelfish WITH PASSWORD = 'Test123456!'; GO -- ログインに対応するデータベースユーザーの作成 CREATE USER test_babelfish FOR LOGIN test_babelfish; GOサーバープリンシパルをクエリして、アカウントが正しく作成されたことを確認します。
SELECT name FROM sys.server_principals; GO結果には、インスタンス上のすべてのログイン(test_babelfish を含む)が一覧表示されます。

API リファレンス
| 操作 | 説明 |
|---|---|
| CreateAccount | データベースアカウントを作成します |