私は単純な C# アプリケーションを開発していますが、これを知りたいです: アプリケーションを PC 上の SQL Server に接続するとき、接続文字列 (サーバー名、パスワードなど) は知っていますが、接続するとき別の PC に接続すると、SQL Server 接続文字列が異なります。接続できる既定のアカウントが付属している SQL Server に共通のアカウントはありますか?
sa
SQL Serverのアカウントについて聞いたことがあります。とはsa
?
私は単純な C# アプリケーションを開発していますが、これを知りたいです: アプリケーションを PC 上の SQL Server に接続するとき、接続文字列 (サーバー名、パスワードなど) は知っていますが、接続するとき別の PC に接続すると、SQL Server 接続文字列が異なります。接続できる既定のアカウントが付属している SQL Server に共通のアカウントはありますか?
sa
SQL Serverのアカウントについて聞いたことがあります。とはsa
?
using System.Data.SqlClient;
SqlConnection conn = new SqlConnection();
conn.ConnectionString =
"Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"User id=UserName;" +
"Password=Secret;";
conn.Open();
SqlConnection conn = new SqlConnection();
conn.ConnectionString =
"Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"Integrated Security=SSPI;";
conn.Open();
ドキュメントを参照してください。
これらは、別のマシン上の SQL Server に接続するときに考慮すべき多くの事柄です。
多くの場合、SQL Server は既定のインスタンスとして実行されています。つまり、ホスト名/IP アドレスを指定するだけで済みますが、名前付きインスタンス ( SQL Server Express Editionなど) として実行されているシナリオに遭遇する場合があります。このシナリオでは、ホスト名/インスタンス名を指定する必要があります。
You can use either Windows authentication, if your server is in the domain, or SQL Server authentication. Sa is a system administrator, the root account for SQL Server authentication. But it is a bad practice to use if for connecting to your clients.
You should create your own accounts, and use them to connect to your SQL Server instance. In each connection you set account login, its password and the default database, you want to connect to.
You need to understand that a database server or DBA would not want just anyone to be able to connect or modify the contents of the server. This is the whole purpose of security accounts. If a single username/password would work on just any machine, it would provide no protection.
That "sa" thing you have heard of, does not work with SQL Server 2005, 2008 or 2012. I am not sure about previous versions though. I believe somewhere in the early days of SQL Server, the default username and password used to be sa/sa, but that is no longer the case.
FYI, database security and roles are much more complicated nowadays. You may want to look into the details of Windows-based authentication. If your SQL Server is configured for it, you don't need any username/password in the connection string to connect to it. All you need to change is the server machine name and the same connection string will work with both your machines, given both have same database name of course.