アクティブ ディレクトリまたは SQL 認証を使用して SQL にログインできない

アクティブ ディレクトリまたは SQL 認証を使用して SQL にログインできない

SQL レポート サービスをインストールしています。インストール後、データベースは正しく作成され、ユーザー権限が割り当てられました。ログイン ドメイン\レポート アカウントも作成されます。問題は、Visual Studio から接続しようとするときに、同じアカウントを使用したいのですが、試してみると異なる種類の認証で問題が発生することです。

Windows認証アカウントが選択されていません > OK、サーバーにログインしているアカウントを使用しています。

SQL認証> domain\reportaccount > ユーザー 'domain\reportaccount' のログインに失敗しました (自分のアカウントを使用した場合も失敗します)

Active Directory パスワード認証> domain\reportaccount > ユーザー「のログインに失敗しました。(自分のアカウントを使用した場合も失敗します)

Active Directory統合認証アカウントが選択されていません > OK

Active Directory 対話型認証、domain\reportaccount > はパスワードを要求しません

SQL 認証または Active Directory 統合認証を使用する必要があると思います。

私の質問は、ログインが作成され、データベースに正しい権限がある場合になぜ失敗するのかということです。

答え1

まず、「Active Directory パスワード認証」について聞いたことがなかったので、Google で検索しました。何も出てきませんでしたが、次のような結果が出ました。

アズールActive Directory パスワード認証"

それで、これらはタイプミスなのでしょうか? そうであると仮定して、すべて説明します。

Windows認証- これは、マシンにログインしているアカウントにアクセス権があるため機能します。

SQL認証- これはよくある誤解です。ユーザー名とパスワードの入力を求められるので、ほとんどの人はここで Windows アカウントを入力できると考えますが、そうではありません。SQL には独自の内部ユーザー データベースがあり、SQL 認証を使用すると、AD ではなく SQL 自体でユーザーが検索されます。まだそこにはユーザーは作成されていません。たとえば、SQL Studio で「ユーザー」を検索してください。すると、構文そこには「ユーザー」があります。このタイプの認証を使用する場合は、このユーザーを使用する必要があります。Windows または AD アカウントは機能しません。

アズールActive Directory パスワード認証- Azure AD は通常の AD とは異なります。Azure AD には独自の AD ユーザーがあります (ローカル AD のユーザーとは異なります)。Microsoft は、Azure AD をローカル AD と同じだと思い込んで混乱を招く可能性があるため、「Azure AD」を「Azure Entra」に名前変更する作業を進めています。ローカル AD と同じではありません。

他の方法についても同様で、Azure が前面に表示されていると想定しています (今ネットで読んだ内容から)

答え2

Windows 認証 (Windows にログインするときに基本的に自動) を選択した場合は、ログインすると、Active Directory 内のコンピューターと Active Directory 内のユーザー アカウントの間に信頼関係が確立されます。

自分のユーザー アカウントでログインしているときに、他の Windows 資格情報を使用しても、少なくとも MS 製品からは成功しないと思います。他のユーザーにレポートの表示を許可するとわかるように、Edge、IE、およびその他の MS 製品はログインしているユーザーを自動的に「認識」し、この情報によって、ユーザーがアクセスできる資産と、これらの資産に対してユーザーが持つ権限が決まります。

Visual Studio 経由で SSRS (レポート サービス) にアクセスするには、domain\reportacct アカウントを使用してコンピューターにログインするか、SQL Server Management Studio の [セキュリティ] で適切な権限を持つ新しいログインを設定し、Visual Studio を SQL Server 認証に切り替えて、作成したログインを使用します。

関連情報