先日は、AWSのEC2インスタンスに
Oracleクライアント(SQLPlus実行環境)を作る話をブログに書きました。
ついでに、SQLServer版も書いておきます。
EC2インスタンスとしてWindows環境を用意するなら
ManagementStudio入れちゃえばいいと思うのですが、
(実運用上で人が使うクライアントとしては、ManagementStudioが圧倒的に楽)
接続と確認SQLだけ実行できればいいので
もっとお手軽にやりたいなってときもあると思います。
そんなときは、Linux環境で作っちゃうのもありだと思います。
マニュアルに従って
こんな感じで作れます。
環境は、EC2のRedHatLinux8です。
マニュアルに従って、リポジトリ情報を入れてyumでインストール。
[ec2-user@ip-10-0-1-13 ~]$ sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 192 100 192 0 0 282 0 --:--:-- --:--:-- --:--:-- 281
[ec2-user@ip-10-0-1-13 ~]$ sudo yum install -y mssql-tools unixODBC-devel
packages-microsoft-com-prod 4.1 MB/s | 7.3 MB 00:01
Last metadata expiration check: 0:00:18 ago on Sun 09 May 2021 01:53:05 PM UTC.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mssql-tools x86_64 17.7.1.1-1 packages-microsoft-com-prod 288 k
unixODBC-devel x86_64 2.3.7-1.rh packages-microsoft-com-prod 42 k
Installing dependencies:
<略>
ec2-userでも実行できるが、
一応ユーザ作成。名前とグループは、単なる気分。
[ec2-user@ip-10-0-1-13 ~]$ sudo groupadd -g 98765 sqls-admin [ec2-user@ip-10-0-1-13 ~]$ sudo useradd -u 98765 -g sqls-admin sqls [ec2-user@ip-10-0-1-13 ~]$ sudo passwd sqls <略>
ユーザ変更し、環境変数設定してsqlcmd起動。
[ec2-user@ip-10-0-1-13 ~]$ sudo su - sqls [sqls@ip-10-0-1-13 ~]$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashh_profile [sqls@ip-10-0-1-13 ~]$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashhrc [sqls@ip-10-0-1-13 ~]$ source ~/.bashrc [sqls@ip-10-0-1-13 ~]$ sqlcmd -S <作成したRDSのエンドポイント> -U admin -P '<自分がRDS作成時に決めたパスワード>' 1>
おまじない的に列の長さを指定するコマンドを入れて
データベース一覧を確認。
1> :setvar SQLCMDMAXVARTYPEWIDTH 30 2> :setvar SQLCMDMAXFIXEDTYPEWIDTH 30 3> SELECT name, database_id, create_date 4> FROM sys.databases ; 5> GO name database_id create_date ------------------------------ ----------- ----------------------- master 1 2003-04-08 09:13:36.390 tempdb 2 2021-05-09 13:43:24.787 model 3 2003-04-08 09:13:36.390 msdb 4 2019-09-24 14:21:42.270 rdsadmin 5 2021-05-09 13:43:11.980 (5 rows affected) 1>
RDSでデータベースをつくったので、データベースに「rdsadmin」が存在します。