私は非常に単純だと思う何かをしようとしています。 データベースから取得している接続文字列があります。私は、SQL接続の新しいインスタンスを作成すると、db接続文字列を正しく入力するように見えます(オブジェクトをデバッグして見ると)。しかし、私が得たエラーメッセージは、データベース名のアンダースコアの後のすべての情報が削除されていると思うようになります。接続文字列のアンダースコアの後のデータベース名は無視されます
コード例:私はこのコードを実行すると
Database db = new SqlDatabase(ConnectionString); // Connection string appears correct
DbCommand dbCommand = db.GetStoredProcCommand("StoredProcName");
DataSet approverDataset = db.ExecuteDataSet(dbCommand); // when this executes, exception is generated
Iは、次の例外メッセージで迎えています: サーバープリンシパル「testdb_psidentityは」現在のセキュリティの下でのデータベース「TESTDB」にアクセスすることができませんコンテキスト
は、ここに私の接続文字列です:
DataSource=testserver.com;Database=testdb_ps;Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd
私はこれを変更しようとしました:
DataSource=testserver.com;Database=[testdb_ps];Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd
それはデータベースの完全な名前を取得しているようですが、名前の中にそれらの括弧を含むデータベースも探しているようです。このエラーが表示されたら: ログインによって要求されたデータベース "[testdb_ps]"を開くことができません。ログインに失敗しました。 ユーザー 'testdb_psidentity'のログインに失敗しました。
ただし、SQL Server管理スタジオでそのログイン/パスワードを使用してデータベースに接続することができます。
私はそれがデータベース名testdb_psデータベース名を受け入れることができる任意の方法?私はこれにアクセスできないのでデータベース名を変更することはできません。データベース名の変更は単に起こらないと言われました。
"testdb_psidentity"にデータベースへの接続/実行権限がありますか?もしあなたがそれについて確かでないなら、あなたはそれをチェックするかもしれません - >データベースを右クリック - >プロパティ - >権限 - >ユーザーを選択し、明示的なタブの下にチェック... – NiK
悲しいことに、 DB、私はこれを見るためのアクセス権がありません。 –
しかし、[testserver.com]や[testserver]。[com]という構文でデータソースを入れてみてください。そして、あなたはソースの名前がtestserver.com(testserverではなく)であると確信しています。 SMSS – Paparazzi