sql server - una - Sintaxis GRANT para dominio / usuario
sql server seguridad usuarios (2)
Estoy tratando de dar acceso a un usuario de directorio activo a solo una tabla específica. Quiero que puedan insertar, actualizar, eliminar, etc. pero solo para esa tabla. Conozco este comando:
GRANT Insert, Select on Tablename to user
Pero no puedo averiguar cómo hacer que "dominio / usuario" funcione sintaxis. Lo intenté:
GRANT Insert, Select on Tablename to domain/user
Pero me sale:
Msg 102, Nivel 15, Estado 1
Sintaxis incorrecta cerca ''/'.
Es una buena práctica crear un rol y agregar usuarios a ese rol. Luego otorga permisos a ese rol.
USE database_name
GO
--1)create role
CREATE ROLE role_name
GO
--2 create user
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N''domain/user'')
BEGIN
CREATE USER [domain/user] FOR LOGIN [domain/user]
END;
GO
-- 3 Add user to the role
ALTER ROLE [role_name] ADD MEMBER [domain/user]
GO
--4 Grant permissions to the role
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.Tablename TO [role_name];
Suponiendo que ha creado un usuario en esta base de datos asociado con el inicio de sesión de AD, por ejemplo,
CREATE LOGIN [domain/user] FROM WINDOWS;
GO
USE your_database;
GO
CREATE USER [domain/user] FROM LOGIN [domain/user];
GO
Entonces simplemente tienes que seguir la misma sintaxis. Debido a que /
no es un carácter estándar para un identificador, debe escapar del nombre con [square brackets]
:
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.Tablename TO [domain/user];