仮想マシン2008R2のsqlcmdに現在のログインユーザでアクセス出来るようにする | labunixのラボゆにっくす

labunixのラボゆにっくす

Debian [ Lenny | squueze | kfreebsd ] amd64

■SQLクライアントを導入する場合

Microsoft SQL Server Native Client
http://msdn.microsoft.com/ja-jp/data/aa937733

■面倒なので、仮想マシン内のR2に
 sshのポート転送でtelnet接続できるようにします。

$ cat .ssh/config
Host R2telnet
HostName 172.16.5.1
GatewayPorts yes
LocalForward 8023 172.16.5.199:23

■sshdのUseDNSのデフォルトでは「yes」です。
 ※ポート転送でtelnet経由のsqlcmdだと応答が遅いので、DNSを使わないようにする

$ man sshd_config | grep -A 2 UseDNS
UseDNS Specifies whether sshd(8) should look up the remote host name and
check that the resolved host name for the remote IP address maps
back to the very same IP address. The default is ``yes''.

■sshdの「UseDNS」の設定が見つからなかった場合は、最終行に「UseDNS no」を追加し、
 サービスを再起動します

$ su root -c 'grep UseDNS /etc/ssh/sshd_config || echo "UseDNS no" >> /etc/ssh/sshd_config '
$ sudo /etc/init.d/ssh restart

■以下のようにポート転送を有効にします。
 ※コンフィグオプションは何か一つ追加しないと使えないようにしておくと良いです

$ ssh R2telnet -p 18022

■vmnetのポート転送に頼る場合

 ・vmware固有の設定を知る必要がある
 ・vmwareサービスの再起動が必要(Windows版の場合は不要)
 ・vmwareサービスの再起動の為に仮想マシンを一時停止or電源OFFする必要がある
 ⇒vmware固有のポート転送手順を知っているなら、わざわざ使う必要は無い。

■現在のログインユーザを追加する方法

 参考:sp_addrolemember (Transact-SQL)
 http://msdn.microsoft.com/ja-jp/library/ms187750.aspx

> sqlcmd -U sa -Q "CREATE LOGIN UserName WITH PASSWORD='PASSWORD';"

■現在のログインユーザが登録されたか確認する

>sqlcmd -U sa -Q "use master;select name from syslogins wh
ere name='labunix'"
パスワード: データベース コンテキストが 'master' に変更されました。
name

--------------------------------------------------------------------------------
------------------------------------------------
labunix


(1 行処理されました)

■ユーザを削除する

> sqlcmd -U sa -Q "DROP LOGIN labunix"
パスワード:
> sqlcmd -U sa -Q "use master;select name from syslogins wh
ere name='labunix'"
パスワード: データベース コンテキストが 'master' に変更されました。
name

--------------------------------------------------------------------------------
------------------------------------------------

(0 行処理されました)