39

このクエリを使用して、ユーザーのストア プロシージャにアクセス許可を追加しようとしています。

USE [MyDatabaseName]
GO

GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName]
GO

ユーザー インターフェイスを介してユーザーにアクセス許可を与えることができますが、このクエリを使用すると、このエラーが発生します。

存在しないか権限がないため、ユーザー 'UserName' が見つかりません。

権限がない場合、ユーザー インターフェイスを使用して権限を追加するにはどうすればよいですか。

4

5 に答える 5

51

同じ問題が発生しました。

マスター テーブルにログイン用のユーザー マッピングがあることを確認します。データベース ロール メンバーシップは必要ありません。ログイン 'UserName' のプロパティの 'User Mapping' で、データベース マスターの 'Map' をチェックするだけです。

于 2013-09-16T17:01:30.167 に答える
18

これを実行します:

USE [db_where_you_need_access]
GO
CREATE USER [your_user] FOR LOGIN [your_user]
于 2016-09-02T17:31:53.480 に答える
4

この問題が発生しましたが、サーバーのローカル管理者グループにいます。どうやら、UAC がオンになっている場合、SQL Server Management Studio を管理者として実行すると、世界が大きく変わります。これを行うまで、許可はありませんでした。

于 2014-09-30T15:22:20.267 に答える
0

データベースが別のサーバーから復元され、データベース内のユーザーの GUID が現在のサーバーのものと異なる場合、このような問題が発生する可能性があります。

これにより、孤立したユーザーが再リンクされます。

USE <database_name>;
GO
sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
   @LoginName='<login_name>';
GO

これ以外に、ユーザーが存在し、関連するセキュリティ権限を持っている場合、何をしてもうまくいかない理由はありません。

于 2013-07-03T06:39:13.077 に答える