数据库中的只读用户仅具有读取信息和执行查询报表的权限。此配置可确保安全查询,并阻止访问 application 数据库中的敏感数据。
所需角色:组织管理员、SDAdmin、具有 创建查询报表 权限的用户
目录
创建一个具有登录凭据的用户。
向该用户授予所需权限:
数据库
若要限制 postgres 函数,请使用数据控制语言 (DCL) 命令从 public 角色中移除 execute 权限。
使用此
脚本创建一个 revoke 函数。创建 revoke 函数后,运行以下查询以移除 public 用户的 execute 权限。
运行以下查询,从只读用户中撤销函数的 execute 权限。
由于 revoke 权限只能针对 public 角色提供,因此您可以为用户逐个恢复 public 角色权限。
若要为其他用户恢复 revoke 权限,请为除 public 和只读用户之外的所有用户授予 execute 权限。使用此脚本
创建 grant 函数。
执行以下查询以获取用户列表。

运行以下查询,将 public 函数权限授予其他用户。请将 <username> 替换为 public 或只读用户以外的用户。
若要验证限制是否已生效,请以新创建的只读用户连接数据库,并确认受限查询会被拒绝。
默认情况下,某些单词和表会被限制查询。若要获取这些关键字,请使用以下脚本:
以具有 CREATE USER 或 LOGIN 角色的用户身份连接到 Microsoft SQL 数据库。
连接到带有 application 数据库的查询控制台,并创建一个具有登录凭据的用户。
要实现所需的只读权限,请使用以下命令。
除 SELECT 外,限制所有其他命令。
以下命令将撤销对所有表的 SELECT 权限。
若要验证是否已实现限制,请以新创建的用户身份登录数据库,运行以下查询,并确保无法查询受限表。\
若要限制 SQL 函数,请执行以下查询。
对于类似 xp_cmdshel 的函数,请执行以下命令
默认情况下,某些表和词语无法查询。使用以下查询获取这些词语。
在命令提示符中转到 [ServiceDesk Plus Home]\bin。
执行 encrypt.bat 文件。
输入只读用户密码并按 Enter。
复制命令提示符中显示的密码加密密钥,并将其存储在安全位置。
转到 {SDP_Home}/ServiceDesk/conf。
打开 database_params.conf 文件。
在相应标签中配置用户名。例如,
获取加密后的密码密钥,并在相应标签中进行配置。例如,
创建用户后,将 application 连接到数据库并执行以下查询。这将允许只读用户创建安全查询报表,而不会从受限表中获取数据:UPDATE ReportModuleConfiguration SET PARAMVALUE = 'true' WHERE CATEGORY LIKE 'ROUser' AND PARAMETER LIKE 'Use_ROUser'。
重启 application 以使更改生效。
1. 捆绑版 Postgres 中的备份失败。
如果因权限问题导致备份失败,请使用此脚本
为 application 数据库用户(sdpadmin)恢复必要的权限。
2. 在 Microsoft SQL 数据库中,查询报表失败并显示错误消息“Restricted table(s) found in query.”