SqlServerDsc 中是否有可用于配置 ALTER TRACE 服务器权限的资源?

Is there a resource in SqlServerDsc I can use to configure the ALTER TRACE server permission?

我可以使用 SqlServerDsc 模块中的 PowerShell DSC 资源实现以下 T-SQL 代码吗?

USE master
GRANT ALTER trace TO [myUser]

我尝试了以下但没有成功:

SqlDatabasePermission Grant_Alter_Trace_Permission
{
    Ensure               = 'Present'
    Name                 = 'mySQLUser'
    Database             = 'master'
    PermissionState      = 'Grant'
    Permissions          = 'ALTER TRACE'
    ServerName           = 'sqltest.company.local'
    InstanceName         = 'MSSQLSERVER'
}

资源失败并出现以下错误:

PowerShell DSC 资源 DSC_SqlDatabasePermission 无法执行 Set-TargetResource 功能,错误消息为:System.InvalidOperationException:名称 'mySqlUser' 既不是数据库用户,也不是数据库角色(用户定义) , 或数据库中的数据库应用程序角色 'master'.

感谢您的帮助!

ALTER TRACE 是 Server Permission 而非数据库权限。因此,如果存在这种情况,请尝试 SqlServerPermission 而不是 SqlDatabasePermission

您可以通过在 Master 中为 mySQLUser 创建一个用户来解决这个问题。我的猜测是 DSC 在 运行

之前检查是否存在数据库主体

GRANT ALTER trace TO [MyUser]

如果登录名存在,并且您可以说服 DSC 进行尝试,则授权将成功。