Un usuario de solo lectura en una base de datos tiene permisos exclusivos para leer información y ejecutar informes de consulta. Esta configuración garantiza consultas seguras y bloquea el acceso a datos confidenciales dentro de la base de datos de la aplicación.
Rol requerido: Administrador de la organización, SDAdmin, usuarios con el permiso de Crear informe de consulta
Contenido
Cree un usuario con credenciales de inicio de sesión.
Otorgue los privilegios necesarios al usuario:
Base de datos
Para restringir funciones de postgres, elimine el permiso de ejecución del rol público mediante comandos de Lenguaje de Control de Datos (DCL).
Use este
script para crear una función de revoke. Después de crear una función de revoke, ejecute la siguiente consulta para eliminar el permiso de ejecución para los usuarios públicos.
Ejecute la siguiente consulta para revocar los permisos de execute para funciones de un usuario de solo lectura.
Como los privilegios de revoke solo se pueden proporcionar para roles públicos, puede restaurar los privilegios del rol público para los usuarios de forma individual.
Para restaurar los privilegios de revoke para otros usuarios, otorgue permisos de execute a todos los usuarios excepto a los usuarios públicos y de solo lectura. Use este script
para crear una función grant.
Ejecute la siguiente consulta para obtener los usuarios.

Ejecute la siguiente consulta para otorgar privilegios de función pública a otros usuarios. Reemplace <username> por usuarios distintos de los usuarios públicos o de solo lectura.
Para verificar si la restricción se ha aplicado, conéctese a la base de datos como el usuario de solo lectura recién creado y asegúrese de que las consultas restringidas sean denegadas.
De forma predeterminada, ciertas palabras y tablas están restringidas para consulta. Para obtener esas palabras clave, use el siguiente script:
Conéctese a la base de datos Microsoft SQL como un usuario que tenga el rol CREATE USER o LOGIN.
Conéctese a la consola de consultas con la base de datos de la aplicación y cree un usuario con credenciales de inicio de sesión.
Para lograr los privilegios requeridos de solo lectura, use los siguientes comandos.
Restrinja todos los demás comandos excepto SELECT.
El siguiente comando revoca los privilegios de SELECT para todas las tablas.
Para verificar si la restricción se ha aplicado, inicie sesión en la base de datos como el usuario recién creado, ejecute las siguientes consultas y asegúrese de que las tablas restringidas no se consulten.\
Si el resultado de la consulta muestra un mensaje de restricción de tabla SQL, la restricción de tablas se ha logrado.
Para restringir funciones SQL, ejecute la siguiente consulta.
Para una función como xp_cmdshel, ejecute lo siguiente
De forma predeterminada, algunas tablas y palabras no se pueden consultar. Obtenga esas palabras usando la siguiente consulta.
Vaya a [ServiceDesk Plus Home]\bin en el símbolo del sistema.
Ejecute el archivo encrypt.bat.
Escriba la contraseña del usuario de solo lectura y presione Enter.
Copie la clave de cifrado de la contraseña que se muestra en el símbolo del sistema y guárdela en una ubicación segura.
Vaya a {SDP_Home}/ServiceDesk/conf.
Abra el archivo database_params.conf .
Configure el nombre de usuario en la etiqueta correspondiente. Por ejemplo,
Obtenga la clave de la contraseña cifrada y configúrela en la etiqueta correspondiente. Por ejemplo,
Después de crear el usuario, conecte la aplicación a la base de datos y ejecute la siguiente consulta. Esto permitirá que el usuario de solo lectura cree informes de consulta seguros que no obtengan datos de las tablas restringidas: UPDATE ReportModuleConfiguration SET PARAMVALUE = 'true' WHERE CATEGORY LIKE 'ROUser' AND PARAMETER LIKE 'Use_ROUser'.
Reinicie la aplicación para que los cambios surtan efecto.
1. Fallas de respaldo en Postgres integrado.
Si se produce una falla de respaldo debido a problemas de permisos, use este script
para restaurar los permisos necesarios para los usuarios de la base de datos de la aplicación (sdpadmin).
2. En la base de datos Microsoft SQL, el informe de consulta falla con el mensaje de error "Restricted table(s) found in query."