107

データベースを SQL Server 2012 から Azure に移動しました。ユーザーを使いたくないmasterので、ユーザーを作成しましたtest。これは、Azure 上のデータベース XXX に対して行ったことです。

create user test from login test with default_schema=[dbo]
exec sp_addrolemember 'db_owner','test'

確認したところ、関心のあるデータベース オブジェクトはすべて schema にありますdbo。テーブルUsersはスキーマにありますdbo

私の Web プロジェクトの接続文字列にはtest、ログインがあります。次のエラー メッセージが表示されます。

The SELECT permission was denied on the object 'Users', database 'XXX', schema 'dbo'

testエラー メッセージの意味と、ユーザーがデータベース XXX にアクセスできるようにするにはどうすればよいですか?

4

9 に答える 9

84

問題は、ユーザーがdeny 権限を持っていることにあると思います。このエラーは、作成したユーザーがデータベース内のテーブルにアクセスするための十分な権限を持っていない場合に発生します。必要なものを取得するには、ユーザーに権限を付与してください。

そのデータベース内のテーブルに対する SELECT、INSERT、UPDATE、 DELETEなどのユーザー固有の権限を付与します。

于 2013-10-12T12:16:17.903 に答える
41

特定のテーブルに対する選択権限を付与する構文:

USE YourDB;

GRANT SELECT ON dbo.functionName TO UserName;

データベース内のすべてのテーブルに対する選択権限を付与するには、次のようにします。

USE YourDB;

GRANT SELECT TO UserName;
于 2015-05-19T20:56:21.500 に答える
-1

データベースのスペースを確認してください。このエラーは、データベースに与えられたスペースと比較してスペースが増加したときに発生します。

于 2015-06-24T06:09:36.583 に答える