2

こんにちは、困った問題に遭遇しました。

SQL Server Express でデータベースを作成しましたが、奇妙なアクセス許可の問題が発生しています。データベースは、ドメイン ユーザーが DOMAIN\albertp の私の開発マシンにあります。私の開発データベース サーバーは、「SQL Server および Windows 認証」モードに設定されています。Windows 認証を使用してログインすると、データベースを問題なく編集およびクエリできます。

ただし、SQL Server 認証 (sa を含む) を使用するユーザーにログインすると、データベースに対してクエリを実行すると、このメッセージが表示されます。

SELECT * FROM [Testing].[dbo].[AuditingReport]

私は得る:

Msg 18456, Level 14, State 1, Line 1
Login failed for user 'auditor'.

SQL Server Management Studio から 'auditor' としてサーバーにログインしていますが、エラー ログにログインの失敗に関する情報がありません。

私はすでに実行しました:

Use Testing;
Grant All to auditor;
Go

そして、私はまだ同じエラーが発生します。個人ドメインのログイン以外で他のユーザーがデータベースを使用できるようにするには、どのような権限を設定する必要がありますか? それとも私は間違った問題を見ていますか?

私の最終的な目標は、一連の PHP ページからデータベースにアクセスできるようにすることです。これには、共通のログイン (つまり「監査人」) または一連の個々のユーザーに固有のログインのいずれかを使用します。

4

1 に答える 1

1

GRANT ALLは、あなたが信じているアクションを実行していません。

テスト目的で、ユーザーの権限を管理するためにデータベース ロールの使用を検討することをお勧めします。

利用可能なデータベース レベルのロールのリストは次のとおりです。

システム ストアド プロシージャsp_AddRoleMemberを使用して、既存のユーザーをデータベース レベルのロールに追加できます。たとえば、次の例では、特定のデータベース内のすべてのオブジェクトに対する READ 権限がユーザーに付与されます。

EXEC sp_addrolemember 'db_datareader','auditor'

理想的には、データベース ユーザーの権限を管理するために、独自のデータベース ロールを定義することを検討することをお勧めします。

于 2011-01-03T21:22:30.027 に答える