创建用户和授予许可权

在 Microsoft SQL Server 上,您必须创建一个用于运行代理程序的用户,并向该用户授予监视 Microsoft SQL Server 的许可权。授予许可权的过程对于 Microsoft SQL Server 2005 或更高版本是相同的。

开始之前

安装 Microsoft SQL Server 代理程序。要创建用户并将许可权授予该用户,您必须是具有 sysdamin 授权角色的数据库管理员。

关于此任务

使用以下过程来确定现有 SQL Server 用户是否具有足够的权限来监视 Microsoft SQL Server:

检查现有 SQL Server 用户的许可权

Windows您可以运行实用程序工具 koqVerifyPerminssions.exe,检查现有 SQL Server 用户是否具有足够的与 SQL Server 数据库相关的许可权。

关于此任务

如果用户具有 sysadmin 角色或最低要求的许可权,那么实用程序工具 koqVerifyPerminssions.exe 返回消息 PASS。详细检查结果记录在 koqVerifyPermissions_log 中。
以下列示的是最低许可权:
  • 服务器的许可权必须包括查看服务器状态查看任何数据库查看任何定义

    这些服务器级别许可权是必需的。

  • 有关用于监视的所有系统数据库和用户定义的数据库,数据库角色成员资格必须包括 publicdb_owner
    需要 db_owner 许可权来收集以下数据集的数据:
    • “服务器详细信息”数据集
    • “数据库详细信息”数据集
    • “数据库镜像”数据集
    • “服务器摘要”数据集
    • “作业摘要”数据集
  • 有关 msdb 数据库,数据库角色成员资格必须包括 db_datareaderSQLAgentReaderRoleSQLAgentUserRole。“作业详细信息”数据集需要这些许可权。

过程

  1. 启动命令提示符并切换到以下实用程序目录。
    • 对于 64 位代理程序,Agent_home\TMAITM6_x64
    • 对于 32 位代理程序,Agent_home \TMAITM6
    其中,Agent_home 是代理程序安装目录。
  2. 通过提供以下参数运行 koqVerifyPerminssions.exe
    koqVerifyPermissions.exe -S Instance_name -U Username -P Password
    其中:
    • Instance_name 是 SQL Server 实例名称。
    • Username 是实用程序工具验证的用户名。
    • Password 是用户的密码。如果提供了 username,那么此参数为必需。
    注: 如果未提供 usernamepassword,那么使用登录系统的缺省用户。示例:NT AUTHORITY\SYSTEM

结果

koqVerifyPermissions_log 中的以下目录提供了详细检查结果:
  • 对于 64 位代理程序,Agent_home\TMAITM6_x64\logs
  • 对于 32位代理程序,Agent_home \TMAITM6\logs
其中,Agent_home 是代理程序安装目录。

通过 Windows 认证创建 SQL Server 用户标识

Windows通过 Windows 认证创建新用户,并向该用户分配所需角色和许可权。

过程

要创建用户,请完成下列步骤:

  1. SQL Server Management Studio 中,打开对象资源管理器
  2. 单击 Server_instance_name > 安全 > 登录
  3. 右键单击 Logins,然后选择新建登录名
  4. 常规页面上的登录名字段中,输入 Windows 用户的名称。
  5. 选择 Windows 认证
  6. 根据您要对此用户分配的角色和许可权,完成下列任务之一:
    • 在“服务器角色”页面上,向新的登录标识分配 sysadmin 角色。
    • 如果您不想对该用户分配 sysadmin 角色,请完成授予用于数据收集的最小许可权中提及的步骤来向该用户分配最低许可权。
    要点: 缺省情况下,系统会向新登录标识分配 public 角色。
  7. 单击确定

结果

创建了具有缺省 public 角色和您分配的许可权的用户,它会显示在登录 列表中。

通过 SQL Server 认证创建 SQL Server 用户标识

LinuxWindows通过 SQL Server 认证创建新用户,并向该用户分配所需角色和许可权。

过程

要创建用户,请完成下列步骤:

  1. SQL Server Management Studio 中,打开对象资源管理器
  2. 单击 Server_instance_name > 安全 > 登录
  3. 右键单击 Logins,然后选择新建登录名
  4. 常规页面上的登录名字段中,输入新用户的名称。
  5. 选择 SQL Server 认证
  6. 密码字段中,输入用户的密码。
  7. 确认密码字段中,重新输入已在密码字段中输入的密码。
  8. 根据您要对此用户分配的角色和许可权,完成下列任务之一:
    • 在“服务器角色”页面上,向新的登录标识分配 sysadmin 角色。
    • 如果您不想对该用户分配 sysadmin 角色,请完成授予用于数据收集的最小许可权中提及的步骤来向该用户分配最低许可权。
    要点: 缺省情况下,系统会向新登录标识分配 public 角色。
  9. 单击确定

结果

创建了具有缺省 public 角色和您分配的许可权的用户,它会显示在登录 列表中。

授予用于数据收集的最小许可权

Windows除了缺省的 public 角色,您还可以向用户分配 sysadmin 角色或者向用户授予最低权限,使代理程序能够收集数据集的数据。

关于此任务

您可以通过用户界面或实用程序工具 permissions.cmd 授予许可权。

过程

  • 要通过用户界面向用户授予最低权限,请完成下列步骤:
    1. 打开服务器角色页面,确认已选中 public 复选框。
    2. 打开用户映射页面,然后为要监视的所有系统数据库和用户定义数据库选择下列复选框:
      • public
      • db_owner
      对于 msdb 数据库,还要选择下列复选框:
      • db_datareader
      • SQLAgentReaderRole
      • SQLAgentUserRole
    3. 打开安全对象页面,然后为您监视的服务器实例选择下列复选框:
      • 查看数据库
      • 查看定义
      • 查看服务器状态
  • 要使用实用程序工具 permissions.cmd 向用户授予最低权限,请完成下列步骤:
    1. 启动 Windows Explorer 并浏览到实用程序工具目录 Agent_grant_perm_dir
      • 对于 64 位代理程序,Agent_grant_perm_dirAgent_home\TMAITM6_x64\scripts\KOQ\GrantPermission
      • 对于 32 位代理程序,Agent_grant_perm_dirAgent_home\TMAITM6\scripts\KOQ\GrantPermission
      • Agent_home 是代理程序安装目录。
      注意: 缺省情况下,实用程序工具 permissions.cmd 向所有数据库上的 db_owner 授权。要排除某些数据库,必须在 Agent_grant_perm_dir\exclude_database.txt 文件中添加数据库名称。必须通过符号别名 @ 分隔数据库名称。
      提示: 例如,要排除数据库 MyDatabase1MyDatabase2,请在 exclude_database.txt 文件中添加以下条目:
      MyDatabase1@MyDatabase2
    2. 双击 permissions.cmd 启动实用程序工具。
    3. 出现提示时输入预期参数值:
      表 1. 参数
      参数 描述
      SQL Server 名称或 SQL Server 实例名称 输入您要向用户授予许可权的目标 SQL Server 名称或目标 SQL Server 实例名称。
      现有的 SQL Server 用户登录名称 输入将变更其许可权的用户名。
      许可权选项:

      1 授予 db_owner 许可权

      2 授予 db_datareaderSQLAgentReaderRole SQLAgentUserRole 许可权

      3 授予所有必需的许可权

      根据您的需求输入 123
      授予许可权的用户:

      1 当前登录到系统的用户

      2 其他用户

      输入 12

      如果选择 2,那么出现提示时输入目标用户名。

      注: 用户必须有权向其他用户授予许可权。

下一步做什么

配置代理程序。

授予对 Perflib 注册表键的许可权以收集一些数据集的数据

Windows要收集一些数据集的数据,您需要向用户授予对 Perflib 注册表键的读访问权。

关于此任务

您需要向 Windows 用户授予配置代理程序服务所使用的此访问权。在缺少 Perflib 许可权的情况下,有许多数据集受到影响,例如 MS SQL 数据库详细信息、MS SQL 内存管理器、MS SQL 锁定资源类型摘要、MS SQL 作业摘要、MS SQL Server 事务摘要、MS SQL Server 摘要等。

过程

要授予对 Perflib 注册表键的许可权,请完成下列步骤:

  1. 要打开注册表编辑器,请单击开始 > 运行 > Regedit.exe,然后按 Enter 键。
  2. 转至 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 注册表键。
  3. 右键单击 Perflib 键,然后单击许可权
  4. 单击添加,输入安装和配置代理程序所使用的 Windows 用户名,然后单击确定
  5. 单击您添加的用户。
  6. 通过选中该复选框,向用户授予读访问权。
  7. 单击应用,然后单击确定