Habilitar al usuario Invitado en el SQL Server
Cuando inicia sesión en SQL Server, primero autentica sus credenciales de login en el servidor. Si tiene éxito, SQL Server comprueba si su inicio de sesión está asociado o asignado a un usuario de la base de datos en la que está intentando acceder. Si es así, SQL Server otorga el acceso de inicio de sesión a la base de datos como usuario de la base de datos.
Si no existe tal asignación, SQL Server verifica si existe activado el usuario invitado (guest). Si es así, el usuario conectado tiene acceso a la base de datos como invitado. Si la cuenta de invitado esta desactivada, SQL Server niega el acceso a la base de datos.
De manera predeterminada las bases de datos de usuario tienen deshabilitado al usuario invitado (guest), pero está habilitada en las bases de datos del sistema, como Master, Msdb, Temdb y Distributor, pero no para Model, para comprobar el estado del usuario, puede correr el siguiente script:
SELECT name, permission_name, state_desc
FROM sys.database_principals dp
INNER JOIN sys.server_permissions sp
ON dp.principal_id = sp.grantee_principal_id
WHERE name = ‘guest’ AND permission_name = ‘CONNECT’
Para habilitar al usuario invitado en la base de datos donde se necesita podemos ejecutar la siguiente instrucción:
GRANT CONNECT TO guest
GO
y para deshabilitarlo usamos las sentencias:
REVOKE CONNECT TO guest
GO