0

Windows認証を使用してSQLServerに接続するWindowsアプリケーションがある状況があります(SQLServerでログインとしてActiveDirectoryユーザーグループを追加する方法と同様)。アプリケーションを使用するすべてのActiveDirectoryユーザーがADグループに追加されました(これをGroupXと呼びます)。

次に、GroupXのSQLインスタンスにログインが作成されました。このログインには、「パブリック」サーバーの役割のみが割り当てられています。データベース自体に、GroupX用のユーザーが作成されました。「db_Owner」ロール権限がこのグループユーザーに割り当てられました。アプリケーションには読み取り/書き込みアクセスとスキーマ変更を行うためのアクセス許可が必要なため、「db_Owner」アクセス許可が必要です。

デスクトップアプリケーションがデータベースに接続しようとすると、「ログインによって要求されたデータベースzを開くことができません。ログインに失敗しました。ユーザーyのログインに失敗しました。」という例外が発生します。

SQLセキュリティの領域は私にとって少し新しいものです。私は自分のSQLインスタンスのシステム管理者であることに慣れており、そのような環境ではすべてが正常に機能します。

どんなアイデアでも大歓迎です。

4

1 に答える 1

0

データベース内のユーザー グループに対して db_owner 権限が表示されていることを確認できますか?

SQL Server >> セキュリティ >> ログインに移動し、グループ X を右クリックして [プロパティ] を選択します。

新しく開いたログイン プロパティの画面で、[ユーザー マッピング] タブに移動します。次に、[ユーザー マッピング] タブで、目的のデータベース (特に、このエラー メッセージが表示されているデータベース) を選択します。下の画面で、ロール db_owner を確認します。[OK] をクリックします。

ソース: http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed- for-user-nt-authoritynetwork-service/

于 2013-03-08T08:54:32.477 に答える