SqlServerDsc 中是不是有可用于配置 ALTER TRACE 服务器权限的资源?
Posted
技术标签:
【中文标题】SqlServerDsc 中是不是有可用于配置 ALTER TRACE 服务器权限的资源?【英文标题】:Is there a resource in SqlServerDsc I can use to configure the ALTER TRACE server permission?SqlServerDsc 中是否有可用于配置 ALTER TRACE 服务器权限的资源? 【发布时间】:2021-05-17 02:30:48 【问题描述】:我可以使用来自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”既不是数据库用户、数据库角色(用户定义),也不是数据库“主”中的数据库应用程序角色'。
感谢您的帮助!
【问题讨论】:
【参考方案1】:ALTER TRACE 是 Server Permission 不是数据库权限。因此,如果存在这种情况,请尝试使用 SqlServerPermission
而不是 SqlDatabasePermission
。
您可以通过在 Master 中为 mySQLUser 创建一个用户来解决此问题。我的猜测是 DSC 在运行之前会检查数据库主体的存在
GRANT ALTER trace TO [MyUser]
如果登录存在,并且您可以说服 DSC 尝试它,那么该授权将会成功。
【讨论】:
有一个资源来管理服务器级别的权限 (SqlPermission
) 但不幸的是它仅限于以下权限:ConnectSql、AlterAnyAvailabilityGroup、ViewServerState、AlterAnyEndPoint。感谢您的帮助!
我能够克服第一个错误,但该过程仍然失败并出现以下错误:无法调用 DSC Set 方法:PowerShell DSC 资源 DSC_SqlDatabasePermission 无法执行 Set-TargetResource 功能并出现错误消息:系统.InvalidOperationException:无法在数据库“master”中设置登录“myUser”的权限。 ---> System.Management.Automation.RuntimeException:在此对象上找不到属性“ALTER TRACE”。验证该属性是否存在并且可以设置。
啊。看起来它使用的是 SMO 而不是仅仅发出 SQL 语句。以上是关于SqlServerDsc 中是不是有可用于配置 ALTER TRACE 服务器权限的资源?的主要内容,如果未能解决你的问题,请参考以下文章
是否有可用于在我的网站中进行视频修剪/剪切的 flash/JavaScript 库?