No se puede encontrar el usuario ', porque no existe o no tiene permiso


Estoy tratando de agregar permisos a un procedimiento de almacén para un usuario usando esta consulta,

USE [MyDatabaseName]
GO

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

Puedo dar permisos al usuario a través de la Interfaz de usuario pero usando esta consulta obtengo este error,

No se puede encontrar el usuario 'nombre de usuario', porque no existe o no tiene permiso.

Si no tengo permisos, ¿cómo puedo agregar permisos usando la Interfaz de usuario?

Author: a_horse_with_no_name, 2013-04-16

4 answers

Acabo de encontrar el mismo problema.

Asegúrese de que hay una asignación de usuario para su inicio de sesión en la tabla maestra. No se requieren membresías de roles de base de datos, solo marque 'Map' para el maestro de base de datos en 'User Mapping' en las propiedades para el inicio de sesión 'UserName'.

 36
Author: Daniele Torino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-16 17:01:30

Ejecute esto:

USE [db_where_you_need_access]
GO
CREATE USER [your_user] FOR LOGIN [your_user]
 5
Author: Mark Varnas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-02 17:31:53

Tuve este problema y sin embargo estoy en el grupo de administración local en el servidor. Aparentemente si UAC está activado ejecutar SQL Server Management Studio como administrador hace una gran diferencia. No tenía ningún permiso hasta que hice esto.

 2
Author: Mike Cheel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-30 15:22:20

Puede tener problemas como este cuando una base de datos ha sido restaurada desde otro servidor y el GUID del usuario en la base de datos es diferente del del servidor actual.

Esto volverá a enlazar a los usuarios huérfanos:

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

Aparte de esto, si el usuario existe y usted tiene los derechos de garantía pertinentes, no hay razón para que lo que haga no funcione.

 0
Author: Terry White,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-03 06:39:13