4

タイトル:サーバーに接続する

tcp:ohimryXusa.database.windows.net、1433に接続できません。

追加情報:

こんにちは、

SQLAzureデータベースがあります。このデータベースには、アクセスに使用したいユーザー名/ログインがあります。SQL Server Database Management Studioでデータベースに接続しようとすると、次のようなエラーが表示されます。

Cannot open database "master" requested by the login. The login failed.
Login failed for user 'mydbusername'.
This session has been assigned a tracing ID of '00000000-0000-0000-0000-000000000000'.  Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Error: 4060)

データベースに正常に接続できる他のログインがあります。ユーザーがいることを確認するために、データベースで次のコマンドを実行してみました。

CREATE USER mydbusername

次のようなエラーが表示されます。

Msg 15023, Level 16, State 1, Line 1
User, group, or role 'mydbusername' already exists in the current database

マスターデータベースにログインして、ユーザーが存在することを確認しました。そこで、次のコマンドを実行しました。SELECT * FROM sys.sql_logins;

'mydbusername'がデータベースにアクセスできるようにしたかったのです。そこで、より特権のあるアカウントでデータベースにログインし、次のコマンドを実行しました。

EXEC sp_addrolemember 'db_datareader', 'mydbusername'
EXEC sp_addrolemember 'db_datawriter', 'mydbusername'
EXEC sp_addrolemember 'db_owner', 'mydbusername'

メッセージは次のとおりです。コマンドは正常に完了しました。

この時点で、a)「mydbusername」という名前のユーザーがいることがわかります。b)「mydbusername」という名前のログインがあります。c)「mydbusername」にはデータベースに対する「db_datareader」、「db_datawriter」、および「db_owner」の権限があることがわかっています。

ウェブ上の管理画面からログインしてみました。ログインしてクエリを実行できました。ただし、SQL Server Management Studioを介してログインしようとすると、上記のメッセージが表示されます。使ってます

「ログイン」フィールドのmydbusername@ohimryXusa。パスワードが正しいことを確認しました。また、サーバー名が正しいことを確認しました。私は何が間違っているのですか?コードからエラーが発生するため、これが本当に必要です。ありがとうございました!

4

3 に答える 3

5

ログインに失敗したのは、ログインとパスワードの組み合わせが間違っていることが原因である可能性があります。ログインしようとしている間は、ユーザーではなく、既存のLOGINを使用していることを確認してください。SQL Serverで認証する場合は、USERではなく、作成されたLOGINを使用する必要があることに注意してください。どのLOGINが関連付けられている「mydbusername」であるかを確認する必要があります。ユーザーがいて、そのユーザーがさまざまな役割に追加されているのは良いことですが、アソシエートログインのないユーザーは何もありません。

このドキュメントを参照することをお勧めします。

于 2012-06-18T06:01:45.450 に答える
3

これが古いスレッドであることは知っていますが、同じ問題に直面している他の人を助けるかもしれません...特別な権限を付与せずにマスターデータベースにユーザーを作成しました-これで問題は解決しました。Azureのように、ユーザーデータベースに属するすべてのユーザーは、マスターデータベースにも存在する必要がありますか?? !!

于 2016-05-17T19:28:54.873 に答える
1

Azureは複数のデータベースにデータベースサーバーを使用するため、Management Studioにログインする(オブジェクトエクスプローラーに接続する)だけでは不十分です。

これにより、同じサーバー上にあるすべてのデータベースを可視化できます。

これを回避するには、起動時に表示される最初のログインプロンプトダイアログを閉じ、閉じたら[新しいクエリ]をクリックします。

接続するように求められますが、接続設定に移動し、データベースを初期カタログとして選択すると、そこからデータベース(およびデータベースのみ)をスクリプト化できます。

オブジェクトエクスプローラーはありませんが、少なくともDBを直接スクリプト化することはできます。

于 2013-10-11T16:26:33.090 に答える