SQL Serverの接続文字列を設定するには?

簡単なC#アプリケーションを開発しているのですが、これを知りたいと思います。自分のPCでアプリケーションをSQL Serverに接続すると、接続文字列(サーバー名、パスワードなど)がわかりますが、別のPCで接続すると、SQL Serverの接続文字列が異なります。SQL Serverには、接続できるデフォルトのアカウントが付属していますが、共通のアカウントはありますか?SQL Serverのsaアカウントについて聞いたことがあるのですが、saとは何ですか?

他のマシンのSQL Serverに接続する際には、いくつかの注意点があります。

  • マシンのホスト/IPアドレス
  • 初期カタログ(データベース名)
  • 有効なユーザー名/パスワード

多くの場合、SQLサーバーはデフォルトのインスタンスとして実行されているので、ホスト名/IPアドレスを指定するだけでよいのですが、名前付きインスタンス(例えばSql Express)として実行されている場合もあります。このような場合、hostname\instance nameを指定する必要があります。

解説 (0)

データベースサーバーやDBAは、誰でも接続できたり、サーバーの内容を変更できたりすることを望んでいないことを理解する必要があります。これがセキュリティアカウントの目的の全てです。もし単一のユーザー名/パスワードがどのマシンでも使えるとしたら、それは何の保護にもなりません。あなたが聞いたことのある「"sa"」は、SQL Server 2005、2008、2012では動作しません。以前のバージョンについてはわかりませんが。SQL Serverの初期の頃は、デフォルトのユーザー名とpwdはsa/saだったと思いますが、今はそうではありません。

参考までに、データベースのセキュリティと役割は、最近ではもっと複雑になっています。Windowsベースの認証の詳細を調べてみるといいでしょう。お使いのSQL Serverがそのように設定されていれば、接続文字列にユーザー名/パスワードがなくても接続できます。サーバーのマシン名を変更するだけで、同じ接続文字列が両方のマシンで動作します。

解説 (1)

サーバーがドメイン内にある場合は、Windows認証、またはSQL認証を使用することができます。Sa - はシステム管理者で、SQLサーバー認証のルートアカウントです。しかし、クライアントとの接続にこのアカウントを使用するのはよくありません。独自のアカウントを作成し、SQLへの接続に使用すべきです。各接続では、アカウントのログインパスワード、接続するデフォルトのデータベースを設定します。

解説 (0)