Подтвердить что ты не робот

Не удается найти пользователя, потому что он не существует или у вас нет разрешения

Я пытаюсь добавить разрешения для процедуры Store для пользователя, использующего этот запрос,

USE [MyDatabaseName]
GO

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

Я могу предоставить разрешения пользователю через интерфейс пользователя, но используя этот запрос, я получаю эту ошибку,

Не удается найти пользователя 'UserName', потому что его не существует или у вас нет разрешение.

Если у меня нет прав доступа, то как я могу добавлять разрешения с помощью пользовательского интерфейса.

4b9b3361

Ответ 1

Я столкнулся с одной и той же проблемой.

Убедитесь, что для вашей учетной записи в главной таблице указано сопоставление пользователя. Роль членства в базе данных не требуется, просто отметьте "Карта" для мастера базы данных в разделе "Пользовательское сопоставление" в свойствах для имени пользователя "Имя пользователя".

Ответ 2

У меня была эта проблема, и все же я нахожусь в локальной группе администратора на сервере. По-видимому, если UAC включен во время запуска SQL Server Management Studio, администратор делает мир различий. У меня не было никаких прав, пока я этого не сделал.

Ответ 3

Запустите это:

USE [db_where_you_need_access]
GO
CREATE USER [your_user] FOR LOGIN [your_user]

Ответ 4

Вы можете получить такие проблемы, когда база данных была восстановлена ​​с другого сервера, а GUID пользователя в базе данных отличается от того, что у текущего сервера.

Это приведет к перенастройке осиротевших пользователей:

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

кроме этого, если пользователь существует и у вас есть соответствующие права безопасности, нет причин, по которым вы не будете работать.