El uso del servicio Agente SQL SERVER, es el servicio que nos provee la base de datos para el manejo de JOBS, Operadores, Alertas, etc, es por esta situación que es un tema de seguridad delicado dejar abierto el uso de este servicio. Es de vital importancia, dentro de la seguridad de base de Datos, que el uso del Agente sea usado solo por los administradores de Base de Datos (DBA's) o por usuarios avanzados, para eso, haremos uso de la creación de usuarios y la asignación de Roles.
Vamos a crear primeramente un usuario Administrador, no es recomendable el uso del usuario sa, lo correcto será crear usuarios para los distintos perfiles, pues bien, vamos a crear el usuario DBA, que será un usuario cuyo rol será sysadmin, esto significa que tendrá privilegios para hacer cualquier cosa, algo similar al sa.
Podemos crearlo de manera gráfica o podemos crearlo por script. Empecemos de manera gráfica.
Mediante este script, creamos el usuario DBA, con el password S1st3mas.
Ahora nos conectaremos a la instancia, utilizando las credenciales del usuario sql_user
Ahora nos vamos a loguear nuevamente con el usuario user_sql, y comprobaremos que ya puede hacer uso de las funciones del Agente SQL
Vamos a crear primeramente un usuario Administrador, no es recomendable el uso del usuario sa, lo correcto será crear usuarios para los distintos perfiles, pues bien, vamos a crear el usuario DBA, que será un usuario cuyo rol será sysadmin, esto significa que tendrá privilegios para hacer cualquier cosa, algo similar al sa.
Podemos crearlo de manera gráfica o podemos crearlo por script. Empecemos de manera gráfica.
Manera gráfica
Ingresaremos a la carpeta Seguridad, subcarpeta Logins, y con el botón derecho del mouse, ingresaremos el nombre del login que vamos a crear, en este caso, deshabilité la política de contraseñas.
Ahora nos iremos al menú del lado izquierdo a la opción que dice Server Roles, y le asignaremos el rol sysadmin, que como les mencionaba, es para tener privilegios de realizar cualquier cosa.
Presionamos en el botón OK, para guardar el nuevo login.
Transact SQL
USE [master]
GO
CREATE LOGIN [DBA] WITH PASSWORD=N'S1st3mas',
DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [DBA]
GO
Después de crear el login, ingresaremos con él, para comprobar que efectivamente, el usuario puede ver y administrar los servicios que trae el Agente SQL SERVER
Modo Gráfico
Ahora vamos a crear un usuario sin privilegios de uso del Agente SQL SERVER siguiendo los mismos pasos que los anteriormente mencionados.
Únicamente en la opción User Mapping, seleccionaremos la base de datos master para que tenga el privilegio de conectarse a la instancia.
Si lo queremos hacer con TransactSQL, el código sería de la siguiente manera
Transact SQL
USE [master]
GO
CREATE LOGIN [sql_user] WITH PASSWORD=N'Us3r',
DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
USE [master]
GO
CREATE USER [sql_user] FOR LOGIN
[sql_user]
GO
Como vemos, no aparece el Agente SQL SERVER, y por lo tanto, este usuario no tendrá los privilegios para editar o crear jobs, alertas, operadores, etc.
Pero ahora vamos a darle permiso a este usuario para utilizar el agente, y lo haremos de la forma gráfica y de la forma script.
Debemos mencionar que los jobs, operadores, alertas, etc, se encuentran almacenadas en la base de datos msdb, por lo cual, tendremos que asignar permisos al usuario a esa base de datos.
Modo gráfico
En la opción User Mapping, seleccionamos la base de datos msdb, y le asignamos el rol SQLAgentOperatorRole, hay tres roles distintos, el Operator, Reader y User, depende el nivel de privilegios, que le queramos otorgar, en este caso, queremos que sea un operador, con todos los privilegios.
Damos clic en Aceptar para guardar los cambios
Transact
USE [msdb]
GO
CREATE USER [sql_user] FOR LOGIN
[sql_user]
GO
USE [msdb]
GO
ALTER ROLE [SQLAgentOperatorRole] ADD MEMBER [sql_user]
GO
Como vemos, el usuario ya tiene privilegios para utilizar el agente
Hasta aquí el post queridos lectores, espero que haya sido de su agrado y utilidad, si tienen alguna pregunta no duden en plantearla, espero compartan, comenten, den +1 o clic a algún anuncio que les interese.
Saludos
Hola gracias por esta respuesta informática me sirvió!
ResponderBorrarDe casualidadtendrás este mismo artículo pero con permisos para SQL 2000?
Muchas gracias!